Avatar billede tblaster Nybegynder
15. april 2003 - 19:03 Der er 17 kommentarer og
1 løsning

Asp kode gør ikke som jeg vil have:-(

Jeg har et lille problem med følgende kode:

<%
StartTime = Timer()

If request.querystring("Kategorie") <> "" Then
session("Kategorie") = request.querystring("Kategorie")
Else
session("Kategorie") = "8"
End If

If request.querystring("Forside") <> "" Then
session("Forside") = request.querystring("Forside")
Else
session("Forside") = "8"

End If
%>

...

<%
'Åbn forbindelse til databasen
set conn = server.createobject("ADODB.connection")
conn.open "Driver={mysql};Server=ip;Database=database;UID=brugernavn;PWD=kode;"

Dim kID
Dim ukID

Sub RtrnKat(pid)
  Dim rs
  Dim rs_sql
  Set rs = Server.CreateObject("ADODB.Recordset")
  rs_sql = "SELECT Navn, Id, ParentID FROM Kategorier WHERE ParentID = " & pid & " Order By Prioritet asc, Navn asc"
  rs.Open rs_sql, Conn, 1, 1
  Do While Not rs.EOF
      If rs("parentID") = 0 Then kID = rs("parentID")
        Response.Write "<tr>" & _
                      "<TD width=18 height=15></TD>" & _
                      "<TD width=10 height=15>"
             
        If CInt(session("Kategorie")) = CInt(rs("Id")) Then
        Response.Write "<IMG height=5 src=""Pics/firkant_fyld.gif"" width=5></TD>"& _
                      "<TD bgColor=#dfebc8 height=15><B>"
        Else
        Response.Write "</TD>" & _
                        "<TD height=15><B>"
        End If

        If rs("ParentID") <> 0 Then
        Response.Write "<A href=""index.asp?Kategorie=" & rs("Id") & "&Forside=" & rs("Id") &""">" & "&nbsp;&nbsp;" & rs("Navn")
        Else
        Response.Write "<A href=""index.asp?Kategorie=" & rs("Id") & "&Forside=" & rs("Id") &""">" & rs("Navn")
        End If
       
        Response.Write "</A></B></TD>" & _
                      "</tr>"     
      If CInt(Session("Kategorie")) = CInt(rs("ID")) Then RtrnKat(rs("ID"))
      If kID = rs("ID") Then RtrnKat(rs("ID"))
      If ukID = rs("ID") Then RtrnKat(rs("ID"))
      rs.MoveNext
  Loop
  rs.Close
  Set rs = Nothing
End Sub

Call RtrnKat(0)

conn.close
set conn=Nothing
%>     

Problemet er at den ikke udskriver underkategorierne til underkategorierne. Lad mig illustrer det:

id:      parentid:      navn:
1        0              kategori1
2        1              underkategori1 til kategori1
3        1              underkategori2 til kategori1
4        0              kategori2
5        4              underkategori3 til kategori2
6        5              underunderkategori1 til underkategori3

I html bliver det formatteret sådan her:

kategori1
    underkategori1
    underkategori2
kategori2
    underkategori3
          underunderkategori1

Min kode udskriver altså ikke underunderkategori1. Check www.just2funny.dk/1/ for at se hvad jeg mener ... tryk på vitser - blondiner ... der skulle så gerne komme en undermenu men det gør der ikke :-(

Håber på at kunne få noget hurtigt hjælp ... det er derfor jeg har smidt de 200 point i spørgsmålet.
Avatar billede eagleeye Praktikant
15. april 2003 - 21:23 #1
Problemmet er du skal bygge en træ struktur op og man ikke kender vejen ned gennem træet.
Du skal hvade skrevet:  underkategori3 ud men når man står ved kategori2 ved man ikke det er underkategori3 som underunderkategori1 tilhøre.
Avatar billede tblaster Nybegynder
15. april 2003 - 21:29 #2
du mener at underunderkategori1 tilhøre underkategori3 vel eller hva?

Det ved den udfra parentid og id ... underkategorier er givet ved parentid ... der hvis parentid er lig id så er det en underkategori!
Avatar billede eagleeye Praktikant
15. april 2003 - 21:52 #3
Hvis man trykker på underkategori3 skulle den gerne vise dette:

kategori1
kategori2
  underkategori3
    underunderkategori1


Problemmet er når man skriver ud fra parentID=0 så vil den føst udksirve
kategori1
kategori2
Så får man overført ID på den som er trykker på altså id=5, men man skal også havde parentid med for man kan udskrive den rigtige. Hvis du overføre parenID går det lige når der et 3 niveuer.




<%
StartTime = Timer()

If request.querystring("Kategorie") <> "" Then
  session("Kategorie") = request.querystring("Kategorie")
Else
  session("Kategorie") = "8"
End If

If request.querystring("Forside") <> "" Then
  session("Forside") = request.querystring("Forside")
Else
  session("Forside") = "8"
End If

If request.querystring("parentID") <> "" Then
  session("parentID") = request.querystring("parentID")
Else
  session("parentID") = "0"
End If

%>

...

<%
'Åbn forbindelse til databasen
set conn = server.createobject("ADODB.connection")
conn.open "Driver={mysql};Server=ip;Database=database;UID=brugernavn;PWD=kode;"

Dim kID
Dim ukID
Dim parentID

parentID = session("parentID")

Sub RtrnKat(pid)
  Dim rs
  Dim rs_sql
  Set rs = Server.CreateObject("ADODB.Recordset")
  rs_sql = "SELECT Navn, Id, ParentID FROM Kategorier WHERE ParentID = " & pid & " Order By Prioritet asc, Navn asc"
  rs.Open rs_sql, Conn, 1, 1
  Do While Not rs.EOF
      If rs("parentID") = 0 Then kID = rs("parentID")
     
        Response.Write "<tr>" & _
                      "<TD width=18 height=15></TD>" & _
                      "<TD width=10 height=15>"
             
        If CInt(session("Kategorie")) = CInt(rs("Id")) Then
        Response.Write "<IMG height=5 src=""Pics/firkant_fyld.gif"" width=5></TD>"& _
                      "<TD bgColor=#dfebc8 height=15><B>"
        Else
        Response.Write "</TD>" & _
                        "<TD height=15><B>"
        End If

        If rs("ParentID") <> 0 Then
        Response.Write "<A href=""index.asp?parentid=" & rs("parentID") & "&Kategorie=" & rs("Id") & "&Forside=" & rs("Id") &""">" & "&nbsp;&nbsp;" & rs("Navn")
        Else
        Response.Write "<A href=""index.asp?parentid=" & rs("parentID") & "&Kategorie=" & rs("Id") & "&Forside=" & rs("Id") &""">" & rs("Navn")
        End If
       
        Response.Write "</A></B></TD>" & _
                      "</tr>"
      If CInt(Session("Kategorie")) = CInt(rs("ID")) Then RtrnKat(rs("ID"))
      If CInt(parentID) = CInt(rs("ID")) Then RtrnKat(rs("id"))
      'If CInt(kID) = rs("") Then RtrnKat(rs("ID"))
      rs.MoveNext
  Loop
 
  rs.Close
  Set rs = Nothing
End Sub

Call RtrnKat(0)

conn.close
set conn=Nothing
%>
Avatar billede tblaster Nybegynder
15. april 2003 - 21:58 #4
Jeg må sku sige at hvis der er nogen der fatter asp så er det sku dig eagleeye ... nu virker det fint bortset fra en enkelt ting ... når den udskriver underunderkategori1 så udskriver den det som underkategori3 ... forstået på den måde at den ikke lige laver en 3x mellemrum for at man kan se at det er en underkategori til underkategori3 ...

Kan du hjælpe med det så er jeg top tilfreds!

Check:
http://www.just2funny.dk/1/index.asp?parentid=1&Kategorie=14&Forside=14
For at se hvordan den skriver det ud som de andre underkategorier!
Avatar billede tblaster Nybegynder
15. april 2003 - 22:04 #5
Fandt også lige en anden mindre detalje ... når man trykker på for eksempel "Hvad er..."  som er en underunderkategori1 så lukkes hele menuen ...

Check:
http://www.just2funny.dk/1/index.asp?parentid=1&Kategorie=14&Forside=14
Og tryk på "Hvad er..." for at se hvad jeg mener!
Avatar billede eagleeye Praktikant
15. april 2003 - 22:13 #6
Det med at den fjerner menuen er fordi det er 4 level i menun, det er samme problem.
Avatar billede eagleeye Praktikant
15. april 2003 - 22:21 #7
Strukturen af din menu liger til forvæsing et forum hvor man kan komme med komemntare til kommetare. Normalt vil hver kommentar hvade en ReplyID som er din parentID og en threatID/parentID som er ID på den første kommentar der hvor parentID=0.
Avatar billede tblaster Nybegynder
15. april 2003 - 22:22 #8
Hvad kan jeg gøre? Kan menuen så laves så den køre til 4 levels og ikke kun 3?
Avatar billede tblaster Nybegynder
22. april 2003 - 12:11 #9
eagleeye ... kan du hjælpe eller hvad?
Eller er der andre der har en idee?
Avatar billede tblaster Nybegynder
22. april 2003 - 12:13 #10
Nu læste jeg lige din kommentar igennem igen ... hvorfor er det at overstående kode kun virker til og med 3 niveuer og ikke 4, 5 eller x antal?
Avatar billede tblaster Nybegynder
23. april 2003 - 20:00 #11
Jeg har ændre min kode til følgende nu:

Dim kID
Dim ukID
Dim parentID

parentID = session("parentID")

Sub RtrnKat(pid)
  Dim rs
  Dim rs_sql
  Set rs = Server.CreateObject("ADODB.Recordset")
  rs_sql = "SELECT * FROM Kategorier WHERE ParentID = " & pid & " Order By Prioritet asc, Navn asc"
  rs.Open rs_sql, Conn, 1, 1
  Do While Not rs.EOF
      If rs("parentID") = 0 Then kID = rs("parentID")
     
        Response.Write "<tr>" & _
                      "<TD width=18 height=15></TD>" & _
                      "<TD width=10 height=15>"
             
        If CInt(session("Kategorie")) = CInt(rs("Id")) Then
        Response.Write "<IMG height=5 src=""Pics/firkant_fyld.gif"" width=5></TD>"& _
                      "<TD bgColor=#dfebc8 height=15><B>"
        Else
        Response.Write "</TD>" & _
                        "<TD height=15><B>"
        End If

        If rs("Nr") = 1 Then
        Response.Write "<A href=""index.asp?Size=" & session("Sizex") & "&parentid=" & rs("parentID") & "&Kategorie=" & rs("Id") & "&Forside=" & rs("Id") &""">" & rs("Navn")
        End If
        If rs("Nr") = 2 Then
        Response.Write "<A href=""index.asp?Size=" & session("Sizex") & "&parentid=" & rs("parentID") & "&Kategorie=" & rs("Id") & "&Forside=" & rs("Id") &""">" & "&nbsp;&nbsp;" & rs("Navn")
        End If
        If rs("Nr") = 3 Then
        Response.Write "<A href=""index.asp?Size=" & session("Sizex") & "&parentid=" & rs("parentID") & "&Kategorie=" & rs("Id") & "&Forside=" & rs("Id") &""">" & "&nbsp;&nbsp;&nbsp;&nbsp;" & rs("Navn")
        End If
       
        Response.Write "</A></B></TD>" & _
                      "</tr>"
      If CInt(Session("Kategorie")) = CInt(rs("ID")) Then RtrnKat(rs("ID"))
      If CInt(parentID) = CInt(rs("ID")) Then RtrnKat(rs("id"))
      'If CInt(kID) = rs("") Then RtrnKat(rs("ID"))
      rs.MoveNext
  Loop
 
  rs.Close
  Set rs = Nothing
End Sub

Call RtrnKat(0)

conn.close
set conn=Nothing

Så skriver den fint menuerne ud som den skal med at rykke undermenuerne også niveu 3 lidt ind. Men stadig er det sådan at hvis man trykker på en kategori af niveu 3 så lukker den hele menuen ...

Skal gerne have hjælp hurtigst muligt!
Avatar billede tblaster Nybegynder
23. april 2003 - 20:00 #12
Avatar billede tblaster Nybegynder
30. april 2003 - 16:27 #13
Hvaaaaa ... er der nogen der har lyst til at hjælpe?
Avatar billede tblaster Nybegynder
18. maj 2003 - 14:58 #14
eagleeye er du her stadig? Har du mulighed for at hjælpe mig ... jeg har virklig brug for at få hjælp til at få det færdig! Det er gør som sagt ikke noget at den ikke virker til mere end 3 niveauer bare den gør til 3 niveauer! Lige nu virker den jo kun til 2 ... den lavede lort i det med den 3!
Avatar billede eagleeye Praktikant
20. maj 2003 - 10:00 #15
Jeg kan prøve at kigge på det men det kan være du bliver nød til at lave en ny kolonne eller rette lidt i tabellen som den er nu.
Avatar billede tblaster Nybegynder
20. maj 2003 - 14:10 #16
Det gør heller ikke noget hvis jeg skal det ...
Avatar billede tblaster Nybegynder
10. juni 2003 - 11:23 #17
Hva så eagleeye ... har du fundet ud af noget?
Avatar billede tblaster Nybegynder
10. juni 2003 - 11:47 #18
Jeg har valgt at oprette et nyt og frisk spørgsmål da det er langtid siden vi har arbejdet på dette spørgsmål så det ligger lidt langt væk ...

http://www.eksperten.dk/spm/362868

Jeg håber at du vil hjælpe mig færdig med denne menu i det nye spørgsmål ... jeg takker ihvertifald meget for den hjælp du har give mig indtil nu ... pointne er dine og der er jo flere at hente :-)
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