Rekursiv menu, array
HejsaHar strugglet med dette en del tid, jeg skal have lavet et udtræk fra en database, access, i asp. Jeg faldt over et svar eagleeye har lavet for nogle år siden (http://www.eksperten.dk/spm/532172) og har prøve at modde det lidt, men kan ikke lige få det helt til at spille.
Koden som jeg har ændret det til:
<%
' Database forbindelse
Set Rs = Server.Createobject("ADODB.Connection")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; dbq=sti;"
' Hent data fra databasen
Set rsEntries = Rs.Execute("Select * from tabel")
If rsEntries.eof then
Response.Write "<font color=red>Der blev ikke fundet nogle poster i databasen, der modsvarede din forespørgsel!</font>"
arrID = Split("",",")
arrRE = Split("",",")
arrSU = Split("",",")
else
Do
' Gem data som kommasepareret liste
arrID = arrID & "," & rsEntries("ID")
arrRE = arrRE & "," & rsEntries("parent")
arrSU = arrSU & "," & rsEntries("titel")
rsEntries.MoveNext
Loop while not rsEntries.eof
' Lav arrays med data
arrID = Split(arrID,",")
arrRE = Split(arrRE,",")
arrSU = Split(arrSU,",")
Rs.Close
End If
' Funktion som undersøger for svar
Function Threads(intID,startSubMenu)
For m = 1 to Ubound(arrID)
' Hvis svar til det indlæg som funktionen er kaldt med
If Cint(arrRE(m)) = Cint(intID) Then
' Tilføj til liste og kald funktionen for at undersøge for svar
if arrRE(m)=0 then
str="<li><a href=""/"">"
if startSubMenu=true then
strEnd="</a>"
else
strEnd="</a></li>"
end if
if startSubMenu=true then
str = "<ul>" & str
startSubMenu=false
end if
elseif startSubMenu=false then
str="<ul><a href=""/"">"
strEnd=""
startSubMenu=true
else
str=""
strEnd=""
end if
Threads = Threads & str & arrSU(m) & strEnd & "" & Threads(arrID(m),startSubMenu)
if m=Ubound(arrID) and arrRE(m)>0 then Threads=Threads&"</a></ul>"
End If
Next
End Function
' Kald funktionen med alle hovedindlæg
str = Threads(0,false)
if right(str,6) <> "</ul>" then str = str & "</li>"
Response.Write (str)
%>
Outputtet som jeg gerne vil have det til at være
<li><a href="#">Profile</a></li>
<li><a href="#">Home page</a>
<ul>
<li><a href="index.html">Home 1</a></li>
<li><a href="index-2.html">Home 2</a></li>
<li><a href="index-3.html">Home 3</a></li>
</ul>
</li>
Ville være super hvis nogle kunne hjælpe her, da jeg er ved at få grå hår af dette. Arrays er ikke min stærkeste side :)