Avatar billede mini-me Nybegynder
20. oktober 2004 - 11:17 Der er 7 kommentarer og
1 løsning

Rekursiv funktion

Hej Eksperter,

Jeg har brug for noget hjælp til at lave en rekursiv funktion.

Jeg har fundet noget kode på html.dk som jeg gik ud fra, og det virker såmænd også fint nok. Problemet er bare at jeg gerne vil have det virke i en tabel i stedet.

Det kode jeg har p.t. :

<head>
<title>Rekursiv funktion</title>
</head>
<body>

<%
' Database forbindelse
Set Rs = Server.Createobject("ADODB.Connection")   
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("database.mdb")& ";"

' Hent data fra databasen
Set rsEntries = Rs.Execute("Select * from madOpskrift")

Do
  ' Gem data som kommasepareret liste
  arrID = arrID & "," & rsEntries("ID")
  arrRE = arrRE & "," & rsEntries("TopLevelPage")
  arrSU = arrSU & "," & rsEntries("Title")
  rsEntries.MoveNext
Loop while not rsEntries.eof

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

Rs.Close

' Funktion som undersøger for svar
Function Threads(intID)   
  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
    '  FirstLine = "<tr><td></td><td height=23>"
      Threads = Threads & "<ul><li>" & arrSU(m) & Threads(arrID(m)) & "</li></ul>"   
    ' LastLine = Threads & "</td><td>Forside</td><td>Skabelon</td><td>Modul</td><td>Aktiv</td><td>Periode</td><td>Beskyt</td><td>Slet</td></tr>"
    End If       
Next
End Function

' Kald funktionen med alle hovedindlæg
Response.Write Threads(0)
%>
</table>
</body>
</html>
Avatar billede grafikeren Nybegynder
20. oktober 2004 - 11:53 #1
Prøv at omformuler dit spørgsmål... Jeg er ikke helt med.
Avatar billede mini-me Nybegynder
20. oktober 2004 - 12:39 #2
Okay kan se det forkerte kode der er med ogsaa..

Nedenstaaende laver en liste med underside til underside osv...

Pizza
  Friture
  Annanas
      Frugt
      Gul
      Groen
  Kanel
      Stang
Hovedside2
  underside
  underside
    underside til underside


hvis du kan foelge mig, det jeg gerne vil have er at det kommer som i en tabel! altsaa et nyt <tr><td> for menu... </td></tr> lige nu bruger den jo bare en alm. html liste...

<title>Rekursiv funktion</title>
</head>
<body>

<%
' Database forbindelse
Set Rs = Server.Createobject("ADODB.Connection")   
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("database.mdb")& ";"

' Hent data fra databasen
Set rsEntries = Rs.Execute("Select * from madOpskrift")

Do
  ' Gem data som kommasepareret liste
  arrID = arrID & "," & rsEntries("ID")
  arrRE = arrRE & "," & rsEntries("TopLevelPage")
  arrSU = arrSU & "," & rsEntries("Title")
  rsEntries.MoveNext
Loop while not rsEntries.eof

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

Rs.Close

' Funktion som undersøger for svar
Function Threads(intID)   
  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
    '  FirstLine = "<tr><td></td><td height=23>"
      Threads = Threads & "<ul><li>" & arrSU(m) & Threads(arrID(m)) & "</li></ul>"   
    ' LastLine = Threads & "</td><td>Forside</td><td>Skabelon</td><td>Modul</td><td>Aktiv</td><td>Periode</td><td>Beskyt</td><td>Slet</td></tr>"
    End If       
Next
End Function

' Kald funktionen med alle hovedindlæg
Response.Write Threads(0)
%>

</body>
</html>
Avatar billede tsunami Nybegynder
20. oktober 2004 - 16:14 #3
<title>Rekursiv funktion</title>
</head>
<body>

<%
' Database forbindelse
Set Rs = Server.Createobject("ADODB.Connection")   
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("database.mdb")& ";"

' Hent data fra databasen
Set rsEntries = Rs.Execute("Select * from madOpskrift")

Do
  ' Gem data som kommasepareret liste
  arrID = arrID & "," & rsEntries("ID")
  arrRE = arrRE & "," & rsEntries("TopLevelPage")
  arrSU = arrSU & "," & rsEntries("Title")
  rsEntries.MoveNext
Loop while not rsEntries.eof

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

Rs.Close

' Funktion som undersøger for svar
Function Threads(intID)   
  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
    '  FirstLine = "<tr><td></td><td height=23>"
      Threads = Threads & "<tr><td>" & arrSU(m) & Threads(arrID(m)) & "</td></tr>"   
    ' LastLine = Threads & "</td><td>Forside</td><td>Skabelon</td><td>Modul</td><td>Aktiv</td><td>Periode</td><td>Beskyt</td><td>Slet</td></tr>"
    End If       
Next
End Function

' Kald funktionen med alle hovedindlæg
Response.Write Threads(0)
%>

</body>
</html>

Er det sådan du mener? :o/
Avatar billede mini-me Nybegynder
20. oktober 2004 - 17:57 #4
Nej, det den laver nu, er jo bare at tilføje et ekstra <tr><td> hvergang siden er en underside... ikke det jeg ønsker. Ønsker mig en tabel hvor den laver en ny række med en ekstra kolonne på 10px width for hver gang den "dykker" i niveau...
Avatar billede netro Nybegynder
20. oktober 2004 - 19:05 #5
Er det noget alá dette, du søger?

http://www.opfinderen.dk/sites/53/

Her bruges en tabel.
Avatar billede mini-me Nybegynder
20. oktober 2004 - 22:04 #6
Ja noget i den stil...
Avatar billede mini-me Nybegynder
23. oktober 2004 - 14:15 #7
anyone??
Avatar billede mini-me Nybegynder
04. december 2004 - 13:24 #8
Vi lukker den her...
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