Hej NG,
Jeg har udviklet en træ-menu i PHP som jeg har forsøgt at "oversætte" til
ASP. Desværre virker det ikke ordentligt, og efter 5 dages forgæves forsøg
på at rette det søger jeg nu hjælp her. Problemet er dette:
Menupunkterne hentes fra en mysql-databasetabel med felterne "menuID",
"parentID" og "pageID". PageID henviser blot til en anden tabel (pages) som
indeholder selve tekstindholdet til menupunkterne.
Menupunkter på øverste niveau i strukturen har alle 0 i parentID og et unikt
nummer i menuID, f.eks. 4. Alle menupunkter på niveauet herunder har så 4 i
parentID og et andet unikt nummer i menuID. På denne måde kan jeg have
ubegrænsede underniveauer.
Ud fra menuID'et hentet fra querystring laver jeg så et array (der starter
fra plads 0), som f.eks. kan hedde 0,4,5. Jeg har så en funktion der skal
udskrive menupunkterne med disse tal i parentID. Således loopes først gennem
alle punkter med parentID = 0. Et af disse har så menuID = 4 og herunder
udskrives så alle med parentID = 4 og så videre. Det er så her det går galt.
Min funktion ser således ud:
Function ShowMenu(parentID, parentArray, i)
Set rs = myConn.Execute("SELECT * FROM menu, pages WHERE menu.parentID = "
& parentID & " AND menu.pageID = pages.pageID")
Do While Not rs.EOF
Response.Write "<a href='menu.asp?menuID=" & rs("menuID") & "'>" &
rs("name") & "</a><br>"
If (parentArray(i) = rs("menuID")) Then
Response.Write "HEJ"
i = i + 1
ShowMenu rs("menuID"), parentArray, i
End If
rs.MoveNext
Loop
End Function
Og kaldet:
'parentArray indeholder 0,4,5
ShowMenu parentArray(0), parentArray, 1
Jeg får denne fejlmeddelelse:
Microsoft VBScript runtime (0x800A0009)
Subscript out of range: '3'
Hvilket henviser til linjen If (parentArray(i) = rs("menuID")) Then (...) .
Der sker noget i retning af at der kommer en forespørgsel til en plads i
parentArray som ikke eksisterer.
Jeg vil selvfølgelig meget gerne poste resten af mit script der danner
arrayet eller PHP-versionen men mente ikke det var nødvendigt i første
omgang.
Håber I kan hjælpe, jeg vil meget gerne have det til at fungere.
Mikkel
|