Avatar billede bondester Nybegynder
21. februar 2006 - 21:59 Der er 7 kommentarer og
1 løsning

Database styret menu vil ikke virke

Jeg har en menu som bliver styret ud fra en database.
Når siden åbner vil hovedmenupunkterne være synlige. Ved klik på en af menuerne skulle der gerne folde sig en submenu ud... Det sker bare ikke ;-)

Har sikkert stiret mig blind på det, håber der er nogen der kan få mine øjne op ;-)


strSQLmen    = "SELECT * FROM rese_sider WHERE link_id=0"
Set men    = Conn.Execute(strSQLmen)                        '// HENTER MENUEN FRA MYSQL

If men.EOF Or men.BOF Then                                '// HVIS RECORD SET ER TOMT ER DER INGEN MENU
    Response.Write "&nbsp;&nbsp;<b>NO MENU</b>"
Else
    Do                                                    '// LØB RECORD SET IGENNEM MED LØKKE
        If men("link_type") = "0" Or men("link_type") = "1" Then    '// INTERNE LINK
            strTarget    = "_self"
            strLink        = Request.ServerVariables("SCRIPT_NAME") & "?Link_ID=" & men("id")
        ElseIf men("link_type") = "2" Then                            '// EKSTERNE LINK
            strTarget    = "_blank"
            strLink        = men("link_ref")
        End If
       
        Response.Write "&nbsp;&nbsp;<a href=""" & strLink & """ target=""" & strTarget & """ class=""menu_main"">" & men("menu_tekst") & "</a><br>"

        If Request.QueryString("Link_ID") =  men("id") Then
            strSQLmen2    = "SELECT * FROM rese_sider WHERE link_id=" & men("id")
            Set men2    = Conn.Execute(strSQLmen2)        '// HENTER SUB-MENUEN FRA MYSQL

            If men2("link_type") = "0" Or men2("link_type") = "1" Then    '// INTERNE LINK
                strSubTarget    = "_self"
                strSubLink        = Request.ServerVariables("SCRIPT_NAME") & "?Link_ID=" & men2("id")
            ElseIf men2("link_type") = "2" Then                            '// EKSTERNE LINK
                strSubTarget    = "_blank"
                strSubLink        = men2("link_ref")
            End If
           
            Response.Write "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=""" & strSubLink & """ target=""" & strSubTarget & """ class=""menu_main"">" & men2("menu_tekst") & "</a><br>"

        End If

    men.MoveNext
    Loop While Not men.EOF
End If

Har lagt koden ud som txt fil. Så er det måske lidt nemmere at overskue...
http://RenService.MartinBonde.dk/KODEN.txt
Avatar billede bondester Nybegynder
21. februar 2006 - 22:00 #1
"Folde" er måske ikke det rigtige ord. Siden loader igen med en ny QueryString.
Avatar billede fennec Nybegynder
22. februar 2006 - 08:27 #2
Kunne meget vel være fordi du har tekst/tal sammenligninger. Prøv at ændre disse linjer:

If Request.QueryString("Link_ID") =  men("id") Then
If men2("link_type") = "0" Or men2("link_type") = "1" Then
ElseIf men2("link_type") = "2" Then

til:
If Request.QueryString("Link_ID") =  men("id")&"" Then
If men2("link_type")&"" = "0" Or men2("link_type")&"" = "1" Then
ElseIf men2("link_type")&"" = "2" Then
Avatar billede fennec Nybegynder
22. februar 2006 - 08:29 #3
Fejlen opstår fordi:
if 2 = "2" then

altid giver false, og rq() returnere altid tekst, selvom der står tal i.
Avatar billede bondester Nybegynder
22. februar 2006 - 16:36 #4
Man skal lære mens man kan...
Takker det virkede perfekt ;-) Smider du et svar?
Avatar billede fennec Nybegynder
23. februar 2006 - 08:15 #5
Jeg har gjort det for vane at smide &"" på alle mine sammenligninger, så opstår problemet ikke, og det er den type, som man kan pruge rigtig mange timer på at finde.

.o) <-- One Eyed Jack
Avatar billede bondester Nybegynder
23. februar 2006 - 18:04 #6
Ja det er det nemlig... Fandt også lige en anden måde man kunne løse det på....
If CInt(Request.QueryString("Link_ID")) =  men("id") Then

Så sikrer man sig at det altid er to tal man har med at gøre...

Takker for handlen
Avatar billede fennec Nybegynder
24. februar 2006 - 08:20 #7
Problemet med CInt() er, at den laver fejl, hvis RQ("Link_ID") er tom, eller ikke er et tal. Med &"" opstår der aldrig fejl, uanset hvad der står i RQ("Link_ID")...
Avatar billede bondester Nybegynder
24. februar 2006 - 17:46 #8
Ja det har du selvfølgelig ret i...
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