Avatar billede lifeweb Nybegynder
18. april 2006 - 17:15 Der er 1 kommentar

Flerdimensionel menu

Jeg har et lille problem, jeg håber i kan hjælpe med

Jeg har flg. tabel:
id | text | parent
1  | x    |
2  | y    | 1
3  | z    | 2

Dette vil jeg gerne have til at resultere i flg:
x
--y
----z

Jeg kan sagtens lave de første to punkter med flg:

function skrivmenupunkt(id,text,level)
response.write text&"<br>"
sql = "SELECT * FROM tabel WHERE parent = "&id
set underrs = base.execute(sql)
while not underrs.eof
response.write "---"&underrs("text")&"<br>"
underrs.movenext
wend
set underrs = nothing
end function

sql = "SELECT * FROM tabel WHERE isnull(parent,0) = 0"
set rs = base.execute(Sql)
while not rs.eof
response.write skrivmenupunkt(rs("id"),rs("text"),0)
rs.movenext
wend

Det bliver et problem med det punkt der er i 3 niveau - nogen der kan hjælpe???
Avatar billede eagleeye Praktikant
18. april 2006 - 19:12 #1
Et forskal er at bruget koden fra dette eksempel. Du kan tage et kig på koden:
http://www.html.dk/scripts/asp/00015/


Her er et eksempel på hvordan den kunne tilrettes:



sql = "SELECT * FROM tabel"
Set rs = conn.Execute(sql)

do while not rs.eof
  ' Gem data som kommasepareret liste
  arrID = arrID & "," & rs("ID")
  arrRE = arrRE & "," & rs("parent")
  arrSU = arrSU & "," & rs("text")
  rs.MoveNext
Loop

' Lav arrays med data
arrID = Split(arrID,",")
arrRE = Split(arrRE,",")
arrSU = Split(arrSU,",")

Rs.Close

' Funktion som bygger listen op
Function Threads(intID, level)   
  For m = 1 to Ubound(arrID)
    If int(arrRE(m)) = int(intID) Then
      sfor = ""
      for i = 1 to level
        sfor = sfor & "--"
      next
      Threads = Threads & sfor & arrSU(m) & "<br>" & Threads(arrID(m),level+1)
    End If
Next
End Function

' Kald funktionen med alle hovedindlæg
Response.Write Threads(0,0)
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