r) det var inget, för trött, ingnorera mig
Har haft problem med att skapa ett trädsystem i min meny.
Den ska lista flera undermenyer och även visa de undermenyer som ligger kvar i undermenyn.
Jag har en kod som ser ut så här:
<%
Set RecSet2=Server.CreateObject("ADODB.Recordset")
Set RecSet3=Server.CreateObject("ADODB.Recordset")
'## Här öppnar vi scriptets första RecordSet
Set RS = Connect.Execute("Select * From tblMenu ORDER By namn")
'## Vi kollar om Recordsetet, menyn är tom, isåfall, skriver vi ut "Tomt"
If RS.EOF Then
Response.Write "<tr><td>Tomt</td></tr>"
Else
'## Vi loppar fram menykategorierna
Do Until RS.EOF
Id = RS("ID")
Namn = RS("Namn")
IF CStr(Id)=Request.QueryString("ID") then
%>
<A HREF="meny.asp?ID=""><%=Namn%></a><br>
<%
strSQL="SELECT * FROM tblLevelMenu WHERE refID="& Request.QueryString("ID") &" AND Level="& Request.QueryString("Level")+1 &" ORDER BY Namn"
Set RecSet2=Connect.Execute(strSQL)
Do Until RecSet2.EOF
strSQL="SELECT * FROM tblLevelMenu WHERE refID="& Request.QueryString("ID") &" AND Level="& Request.QueryString("Level")+1 &" ORDER BY Namn"
Set RecSet3=Connect.Execute(strSQL)
if RecSet3.EOF=true then
%>
-<A href="list.asp?kategori=<%=Id%>&subkategori=<%=Request.QueryString("Level")%>"><%=RecSet2("Namn")%></a><br>
<% else %>
-<A href="meny.asp?ID=<%=Id%>&Level=<%=Request.QueryString("Level")+1%>"><%=RecSet2("Namn")%></a><br>
<%end if%>
<%
RecSet2.MoveNext
Loop
ELSE
%>
<A href="meny.asp?ID=<%=Id%>&Level=1"><%=Namn%></a><br>
<%
END IF
RS.MoveNext
Loop
End If%>
Klaga inte på kodningen, inte jag som har gjort hela.
Men problemet är att den inte visar de gamla undermenyerna i undermenyerna.
Så här blir menyn...
Första visningen:
Test1
Test2
Test3
När man klickat på Test3:
Test1
Test2
Test3
-Under3
Men när mansedan klickar på Under3 så försvinner Under3 och då visas bara de understa undermenyerna:
Test1
Test2
Test3
-Under32
-Under32
-Under32
Detta är ett stort problem för mig.
Jag har kollat i gamla trådar och kom fram till denna funktion som jag prövade.
<!-- #Include file="dbcon.asp"-->
<%
Set RS=Server.CreateObject("ADODB.Recordset")
Function printTree(intCatId)
strSQL = "SELECT * FROM Menu WHERE ParentID="& intCatId &" Order by Namn"
Set RS = Connect.Execute(strSQL)
if RS.EOF then
'Denna kategori hade inga under kategorier, så därför görs ingenting, och vi hoppar upp ett steg i rekursiviteten
else
do while not RS.EOF
'Skriva ut Namnet, och sedan kallar på denna funktionen för att skiva ut alla under kategorier till innevarande kategori
Response.write(RS("Namn"))&"<br>"
Call printTree(RS("CategoryID"))
RS.MoveNext
Loop
end if
End Function
%>
<html>
<head>
<%=printTree(0)%>
<%
RS.Close
Set RS=Nothing
Connect.Close
Set Connect=nothing
%>
Men när jag kör denna får jag att det är för lite minne vid connect.execute
Antar att den loopar alldeles för mycket.
Kommer från denna tråd
http://www.webforum.nu/showthread.php?s=&postid=543816#post543816
Snälla hjälp mig, behöver verkligen få detta att fungera