Avatar billede aero Nybegynder
04. juli 2003 - 16:25 Der er 16 kommentarer og
1 løsning

vis recorder efter vælgt emne

jeg her en side hvor jeg har inkluderet en fil som hedder common.asp som er min db.

COMMON.ASP
<%

Dim cn, cnStr, sql, rs, strSQL

cnStr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath ("Banner.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open cnStr
%>

På min side har jeg så en code som viser hvordan recorderne skal vises osv. samt en code som henter den!!

strSQL = "Select * From Banner Order by Url Desc"
Set rs = Cn.Execute(strSQL)

det jeg nu vil vide eller have er en JUMPmenu hvor jeg har flg stående:

Alle Emne
Photoshop
3D Studio MAX
LightWave
Flash

jeg vil så have det at når folk kommer ind på siden vises alle med den code jeg har vise !!!
Men klikker folk så i jumpmenuen på feks Photoshop så skal den så vise alle recorder hvor Emne i tabellen = Photoshop !!

hvordan laver jeg en sådan funktion i toppen af min side !???
Avatar billede netro Nybegynder
04. juli 2003 - 16:34 #1
ArrValg = Split("Alle emner,Photoshop,3D Studio MAX,LightWave,Flash", ",")
Response.Write "<select onChange='self.location.href=this.options[this.selectedIndex].value;'>"
For i = 0 To UBound(ArrValg)
  Response.Write "<option value='din_side.asp?valg=" & i & "'>" & ArrValg(i) & "</option>"
Next
Response.Write "</select>"

Valg = Request.Querystring("valg")
If Trim(Valg) <> "" And IsNumeric(Valg) Then
  strSQL = "Select * From Banner Where Emne = '" & ArrValg(Valg) & "' Order by Url Desc"
  Set rs = Cn.Execute(strSQL)
  'Udskriv
End If
Avatar billede aero Nybegynder
04. juli 2003 - 17:09 #2
Okay har lige lavet dette men får en fejl:

<!-- #INCLUDE file="common.asp" -->
<html>
<title>Hente data fra database</title>
<head>
</head>
<body>
<%
ArrValg = Split("Alle emner,Photoshop,3D Studio MAX,LightWave,Flash", ",")
Response.Write "<select onChange='self.location.href=this.options[this.selectedIndex].value;'>"
For i = 0 To UBound(ArrValg)
  Response.Write "<option value='default.asp?valg=" & i & "'>" & ArrValg(i) & "</option>"
Next
Response.Write "</select>"

Valg = Request.Querystring("valg")
If Trim(Valg) <> "" And IsNumeric(Valg) Then
  strSQL = "Select * From Grupper Where Emne = '" & ArrValg(Valg) & "' Order by Id Desc"
Set rs = Cn.Execute(strSQL)

if rs.EOF then
Response.write "<font face=""Arial"" size=""2"">Databasen er tom.</font>"
else
Do Until rs.EOF
     

 
  strEmne = rs("Emne")
  strNavn = rs("Navn")

  Response.Write "<a href='test.asp?gruppeid=" & rs("Id") & "'>" & strNavn & "</a>&nbsp;&nbsp;&nbsp;"& strEmne &"<br>"

  rs.MoveNext
Loop
        Response.Write "</table><br>"

    End if
       
    Cn.Close
    Set Cn = Nothing
%>
</body>
</html>


Fejl

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03F6)
'End' var ventet
/ASP_3.0/vælgemne/default.asp, line 39


linje 39 = Set Cn = Nothing

kan du hjælpe med dette !??
Avatar billede c Nybegynder
04. juli 2003 - 17:23 #3
du skal tilføje end if, lige før cn.close

desuden er der ingen grund til at spilde resourser på:
ArrValg = Split("Alle emner,Photoshop,3D Studio MAX,LightWave,Flash", ",")
Response.Write "<select onChange='self.location.href=this.options[this.selectedIndex].value;'>"
For i = 0 To UBound(ArrValg)
  Response.Write "<option value='default.asp?valg=" & i & "'>" & ArrValg(i) & "</option>"
Next
Response.Write "</select>"

da der ikke er noget dynamisk i den, kan du lige så godt lave den i statisk HTML, det kan kun bruges hvis du lægger typerne i en database, og så ville jeg lave den:

strSQL = "Select id, navn From emner"
Set rs1 = Cn.Execute(strSQL)

Do while not (rs1.BOF or rs1.EOF)
  Response.Write "<option value='default.asp?valg=" & rs1("id") & "'>" & rs1("navn") & "</option>"
Next
Response.Write "</select>"

påden måde er det en relationsdatabase, og du kan uden besvær lave flere emner...

mvh
Christian
Avatar billede aero Nybegynder
04. juli 2003 - 17:27 #4
C

hellere have noget dynamisk end intet !!!

desuden har jeg End If før cn.close !!!

Men har du andre løsninger så kom gerne med dem !!! ;)
Avatar billede c Nybegynder
04. juli 2003 - 18:03 #5
der skal være et end if mere... der er nemli to if-sætninger....

det jeg mener med at der ikke er noget dynamik i den blok er at du har gået over åen for at hente vand...

i stedet for:

ArrValg = Split("Alle emner,Photoshop,3D Studio MAX,LightWave,Flash", ",")
Response.Write "<select onChange='self.location.href=this.options[this.selectedIndex].value;'>"
For i = 0 To UBound(ArrValg)
  Response.Write "<option value='default.asp?valg=" & i & "'>" & ArrValg(i) & "</option>"
Next
Response.Write "</select>"

kan du bare skrive:

<select onChange="self.location.href=this.options[this.selectedIndex].value;">
<option value="default.asp?valg=0">Alle emner</option>
<option value="default.asp?valg=1">Photoshop</option>
<option value="default.asp?valg=2">3D studio MAX</option>
<option value="default.asp?valg=3">LightWave</option>
<option value="default.asp?valg=3">Flash</option>
</select>

og så har du endda ikke belastet serveren unødigt, hvilket giver lavere hente tid...

mvh
Christian
Avatar billede aero Nybegynder
04. juli 2003 - 20:25 #6
OKAY

men har nu et problem som jeg skrev ang. visningen så skal den vise alle emner i databasen altså som normalt men så når man klikker på et af emnerne så skal den kun vise disse og det virker men den kan ikke vise alle indlæg fra starten og når man klikker på alle så viser den INTET !!!

Jeg har brugt den code jeg fik først !!!

ved ikke om jeg skal bruge C's funktion !!! men kan nogle/C lave en opsætning hvordan coden skal se ud, for at vise alle indlæg når man kommer ind på siden og så kan man vælge hvad man vil se og på tilbage til alle indlæg !???
Avatar billede c Nybegynder
04. juli 2003 - 21:31 #7
<select onChange="self.location.href=this.options[this.selectedIndex].value;">
<option value="default.asp?valg=0">Alle emner</option>
<option value="default.asp?valg=1">Photoshop</option>
<option value="default.asp?valg=2">3D studio MAX</option>
<option value="default.asp?valg=3">LightWave</option>
<option value="default.asp?valg=3">Flash</option>
</select>



<%
ArrValg = Split("Alle emner,Photoshop,3D Studio MAX,LightWave,Flash", ",")

Valg = Request.Querystring("valg")
if Trim(Valg) = "" then
    valg = "0"
end if

If IsNumeric(Valg) Then
    strSQL = "Select * From Grupper Where Emne = '" & ArrValg(Valg) & "' Order by Id Desc"
    Set rs = Cn.Execute(strSQL)
    if rs.EOF then
        Response.write "<font face=""Arial"" size=""2"">Databasen er tom.</font>"
    else
        Do Until rs.EOF
            strEmne = rs("Emne")
            strNavn = rs("Navn")
            Response.Write "<a href='test.asp?gruppeid=" & rs("Id") & "'>" & strNavn & "</a>&nbsp;&nbsp;&nbsp;"& strEmne &"<br>"
            rs.MoveNext
        Loop
        Response.Write "</table><br>"
    End if
End if       
    Cn.Close
    Set Cn = Nothing
%>
</body>
</html>

Dette bør virke...
Avatar billede aero Nybegynder
04. juli 2003 - 22:28 #8
2 problemmer !!!

1. Når jeg kommer ind på default siden viser den "databasen er tom" men virker ved de andre link

2. Når jeg er ved et emne og klikker "Alle emner" viser den stadigvæk det emne jeg er ved men viol ikke vise alle emner !!!!
Avatar billede c Nybegynder
04. juli 2003 - 23:35 #9
if (valg = "0") then
strSQL = "Select * From Grupper Where Emne = '" & ArrValg(Valg) & "' Order by Id Desc"

strSQL = "Select * From Grupper Where Emne = '" & ArrValg(Valg) & "' Order by Id Desc"
Avatar billede c Nybegynder
04. juli 2003 - 23:39 #10
sorry.... hadder tab+space....

if (valg = "0") then
    strSQL = "Select * From Grupper Order by Id Desc"
else
    strSQL = "Select * From Grupper Where Emne = '" & ArrValg(Valg) & "' Order by Id Desc"
end if

mvh
Christian
strSQL = "
Avatar billede aero Nybegynder
05. juli 2003 - 00:28 #11
hvor skal det ind henne !???
Avatar billede aero Nybegynder
05. juli 2003 - 01:30 #12
okay ved det man KAN ikke få den til at vise alle indlæg til at starte på og ALLE EMNER virker stadigvæk ikke !!!!
Avatar billede c Nybegynder
05. juli 2003 - 18:11 #13
<select onChange="self.location.href=this.options[this.selectedIndex].value;">
<option value="default.asp?valg=0">Alle emner</option>
<option value="default.asp?valg=1">Photoshop</option>
<option value="default.asp?valg=2">3D studio MAX</option>
<option value="default.asp?valg=3">LightWave</option>
<option value="default.asp?valg=3">Flash</option>
</select>



<%
ArrValg = Split("Alle emner,Photoshop,3D Studio MAX,LightWave,Flash", ",")

Valg = Request.Querystring("valg")
if Trim(Valg) = "" then
    valg = "0"
end if

If IsNumeric(Valg) Then
if (valg = "0") then
    strSQL = "Select * From Grupper Order by Id Desc"
else
    strSQL = "Select * From Grupper Where Emne = '" & ArrValg(Valg) & "' Order by Id Desc"
end if
    Set rs = Cn.Execute(strSQL)
    if rs.EOF then
        Response.write "<font face=""Arial"" size=""2"">Databasen er tom.</font>"
    else
        Do Until rs.EOF
            strEmne = rs("Emne")
            strNavn = rs("Navn")
            Response.Write "<a href='test.asp?gruppeid=" & rs("Id") & "'>" & strNavn & "</a>&nbsp;&nbsp;&nbsp;"& strEmne &"<br>"
            rs.MoveNext
        Loop
        Response.Write "</table><br>"
    End if
End if       
    Cn.Close
    Set Cn = Nothing
%>
</body>
</html>

mvh
Christian
Avatar billede aero Nybegynder
05. juli 2003 - 18:16 #14
SORRY

oprettede et spm med dette samt en udvidelse og har fået det til at virker 100 %

bla. skulle valg = "0" være valg = "" ogder manglede noget i option men mange tak til jer begge !!!!
Avatar billede netro Nybegynder
05. juli 2003 - 19:29 #15
Du behøvede da ikke ligefrem at afvise mit svar, synes jeg - eftersom jeg gav dig grundstenen. Anyway - godt du fik det til at virke.
Avatar billede aero Nybegynder
05. juli 2003 - 19:47 #16
!???

Nu klikkede jeg altså også på jer begge og accepterede svar så i skulle dele dem !!!!

Skal man ikke mærker dem man vil accepter og klikke accepeterer !!??
Avatar billede netro Nybegynder
06. juli 2003 - 16:52 #17
Nej, hvis du vile dele points skal du trykke på knappen "avanceret" og angive, hvor mange points du vil give til hvert svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester