Jag förstår ditt problem, men jag har lite svårt att tänka just nu :l
Jag tycker det är en smula konstigt dock. Eftersom du testar med Request.QueryString("Id"), så bör ju endast den undermeny, som är aktuell, komma med.
Select Case Cstr(Request.QueryString("Id")
Case "1"
Response.Write "-undermeny 1.1"
Case "2"
Response.Write "-undermeny 2.1"
Case "3"
Response.Write "-undermeny 3.1"
End Select
jag vill alltså att det ska se ut på följande sätt:
när jag klickar på meny1 så skall meny1.1, meny1.2 listas under, när jag klickar på meny2 så skall meny2.1m meny 2.2 listas under denna osv.
meny1
meny2
meny3
just nu blir det så att om jag klickar på meny1 så listas meny1.1 under meny1, meny2 och meny3 dvs undermenyn listas under samtliga huvudmenyer, detta för att jag har case satsen i loopen, om jag tar bort den från loopen så kommer undermenyn att hamna under samtliga huvudmenyer dvs på följande sätt:
meny1
meny2
meny3
-meny1.1
-meny1.2
om jag nu klickar på meny1 så ser det ut som ovan. Det jag vill nu är att om jag klickar på meny1 så skall under menyerna dvs meny1.1 och meny1.2 hamna under meny1, och ingen annanstans, helt enkelt en meny med under rubriker osm listas under menyn som vilken trädmeny som helst
Do until rs.eof
Response.write("<a href=""index.asp?Id="&rs("ID")&""">"&rs("Rubrik")&"</a><br>")
If request.querystring("id") = recset("id") then
Select Case Request.QueryString("Id")
Case 1
Response.Write "meny 1.1<br>"
Response.Write "meny 1.2<br>"
Response.Write "meny 1.3<br>"
Response.Write "meny 1.4<br>"
Case 2
Response.Write "meny 2.1<br>"
Response.Write "meny 2.2<br>"
Response.Write "meny 2.3<br>"
Case 3
Response.Write "meny 3.1<br>"
Response.Write "meny 3.2<br>"
End Select
End If
rs.MoveNext
Loop
jag har stött på ett till problem nu när det gäller att kppla dessa under menyer, dvs att de blir en länk som ser ut på följande vis:
index.asp?Id=3&undermeny=3
dvs jag vill att då man väljer huvudmeny 3 så ska dess undermenyer listas under och när man klickar på dessa så ska de visas på huvudsidan, vet ni hur det ska se ut i databasen?
just nu har jag endast detta i databasen:
tblsida
-ID (primärnyckel)
-rubrik (text)
-Innehall(PM)
och så här ser koden ut:
SQL = "SELECT * FROM tblSida "
'response.write SQL
set rs = connect.execute(SQL)
Do until rs.eof
Response.write("<a href=""index.asp?Id="&rs("ID")&""">"&rs("Rubrik")&"</a><br>")
'response.write " "& rs("Id")& " "
If cint(request.querystring("id")) = cint(rs("id")) then
select case request.querystring("Id")
case 1
response.write "meny 1.1<br>"
response.write "meny 1.2<br>"
response.write "meny 1.3<br>"
response.write "meny 1.4<br>"
case "2"
response.write "meny 2.1<br>"
response.write "meny 2.2<br>"
response.write "meny 2.3<br>"
case "3"
response.write "meny 3.1<br>"
response.write "meny 3.2<br>"
end select
end if
rs.MoveNext
Loop
istället för dessa response.write och sedan texten, så vill jag att den hämtar länken från databasen. likt huvudmenyen, men nu även med undermeny.
och hur ska jag göra för att visa innehållet i denna undermeny på websidan index.asp för just nu ser det ut så här för att visa innehållet av en huvudmeny, men jag vill ju även kunna visa innehållet av en undermeny:
<% If request.querystring("Id") then
-----anslutningen till databasen här--------
SQL= "SELECT * FROM tblSida WHERE Id = "&Request.Querystring("id")&" "
set rs = connect.execute (SQL)
Response.write " <b>"& rs("Rubrik") &"</b> <br> " &rs("innehall")&" "
'set rs = connect.execute (SQL)
end if
'Connect.Close
%>
Måste jag skapa en till tabell i databasen lr hur ska jag göra?
det e det jag inte vet, jag undrar hur man ska göra detta?? om man ska skapa en ny tabell för alla undermenyer och ge de ett id var... neh jag vat inte det står still i mitt huvud.
tblMenyer
-------------
intPK -Autonumber -PK
intParentID -Integer -DefaultValue:0 'Om tabellen är en undermeny måste den ha en parent
intMenuID -Integer 'Menyns eget ID
strNamn -String 'Menytitel
strLink -String 'Querystring...
<%
strSQL = "SELECT DISTINCT intMenuID, strNamn, strLink FROM tblMenyer WHERE intParentID = 0;"
Set rsParent = [i]connection[/i].Execute (strSQL, , 1)
While Not rsParent.EOF
Response.Write "<a href='%>rsParent("strLink")<%'><%rsParent("strName")%></a>"
If Cint(Request.Querystring("id")) = Cint(rs("id")) Then
strSQL = "SELECT intMenuID, strName, strLink FROM tblMenyer WHERE intParentID = " & intParentID) & ";"
Set rsChild = [i]connection[/i].Execute (strSQL, , 1)
While Not rsChild.EOF
Reponse.Write "<a href=<%=rsChild("strLink")%>><%=rsChild("strName")%></a>"
Wend
End If
Wend
%>
Ovan är inte testad utan jag har just skrivit funktionen, men jag tycker det ser om som om det ska fungera ;)
Det är förvisso bara en ide om hur du kan lägga upp menyer och fungerar för tillfället bara om du har högst en undermeny. Vill du ha flera nivåer måste du gör själva utskriften av undermenyer rekursiv.
Har du många menyer, så är nog det här tillvägagångssättet att föredra.
263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25