Avatar billede hehlers Nybegynder
23. juni 2006 - 13:51 Der er 4 kommentarer og
2 løsninger

menu i to niveauer fra database

Hejsa

Jeg sidder og laver en ASP menu som bliver udtrukket fra en Access DB.

Når man klikker på et menupunkt som har undermenupunkter, så skal undermenupunkterne selvfølgelig komme under det niveau man har klikket på.

Eks. (som indeholder fejlen) kan ses her:

Klik på "produkter"

http://www.oneweb.dk/onecms/default.asp


Som det kan ses kommer undermenupukterne forståeligt nok under hver af hovedmenupunkterne. Mit spørgsmål er bare hvordan jeg får flettet de to "loops" ind i hinanden, således at menuen i 2. niveau bliver vist det rigtige sted?

Her er koden:

------------------------------------------

<table width="<%=restMenu%>" border="0" cellspacing="0" cellpadding="<%=RsDesign("design_menu_padding")%>" class="almtxt">
<% 
    menu_niveau_2 = request.querystring("menu_niveau_2")
    if menu_niveau_2 <> "" then
        Query= " SELECT * from tbl_menu where menu_niv_2 =" & menu_niveau_2 & " order by menu_order"
        Set RsMenu2 = Conn.Execute(Query)
    end if
                                                                   
    If not RsMenu.EOF then
    RsMenu.movefirst
    while not RsMenu.eof
%> 
  <tr>
    <td valign="top" width="7">*</td>
    <td valign="top"><a href="default.asp?side=<%=RsMenu("menu_side")%><% if RsMenu("menu_sub") = true then%>&menu_niveau_2=<%=RsMenu("id")%><%end if%>" class="menutxt"><%=RsMenu("menu_txt")%></a></td>
  </tr>
<% 
   
    if menu_niveau_2 <> "" then
   
    Query= " SELECT * from tbl_menu where menu_niv_2 =" & menu_niveau_2 & " order by menu_order"
    Set RsMenuSub = Conn.Execute(Query)   
                                                                 
    If not RsMenuSub.EOF then
    RsMenuSub.movefirst
    while not RsMenuSub.eof
%> 
  <tr>
    <td valign="top" width="7">&nbsp;</td>
    <td valign="top"><a href="default.asp?side=<%=RsMenuSub("menu_side")%>&menu_niveau_2=<%=RsMenuSub("id")%>" class="menutxt"><%=RsMenuSub("menu_txt")%></a></td>
  </tr>
<%                                                                       
    RsMenuSub.MoveNext
    Wend
    End If
   
    RsMenuSub.close
    Set RsMenuSub = nothing
    end if
                                                                       
    RsMenu.MoveNext
    Wend
    End If
   

%>
</table>
Avatar billede hehlers Nybegynder
23. juni 2006 - 13:53 #1
SLUDDER!!! - det er denne kode i skal kigge efter:
------------------------------

<table width="<%=restMenu%>" border="0" cellspacing="0" cellpadding="<%=RsDesign("design_menu_padding")%>" class="almtxt">
<% 
    menu_niveau_2 = request.querystring("menu_niveau_2")
    Query= " SELECT * from tbl_menu where menu_niveau = 1 order by menu_order"
    Set RsMenu = Conn.Execute(Query)
                                                                   
    If not RsMenu.EOF then
    RsMenu.movefirst
    while not RsMenu.eof
%> 
  <tr>
    <td valign="top" width="7">*</td>
    <td valign="top"><a href="default.asp?side=<%=RsMenu("menu_side")%><% if RsMenu("menu_sub") = true then%>&menu_niveau_2=<%=RsMenu("id")%><%end if%>" class="menutxt"><%=RsMenu("menu_txt")%></a></td>
  </tr>
<% 
   
    if menu_niveau_2 <> "" then
   
    Query= " SELECT * from tbl_menu where menu_niv_2 =" & menu_niveau_2 & " order by menu_order"
    Set RsMenuSub = Conn.Execute(Query)   
                                                                 
    If not RsMenuSub.EOF then
    RsMenuSub.movefirst
    while not RsMenuSub.eof
%> 
  <tr>
    <td valign="top" width="7">&nbsp;</td>
    <td valign="top"><a href="default.asp?side=<%=RsMenuSub("menu_side")%>&menu_niveau_2=<%=RsMenuSub("id")%>" class="menutxt"><%=RsMenuSub("menu_txt")%></a></td>
  </tr>
<%                                                                       
    RsMenuSub.MoveNext
    Wend
    End If
   
    RsMenuSub.close
    Set RsMenuSub = nothing
    end if
                                                                       
    RsMenu.MoveNext
    Wend
    End If
   

%>
</table>
Avatar billede jps6kb Novice
23. juni 2006 - 14:39 #2
Jeg er lige på vej ud af døren så jeg laver ikke lige noget kode, men det er din

<td valign="top"><a href="default.asp?side=<%=RsMenu("menu_side")%><% if RsMenu("menu_sub") = true then%>&menu_niveau_2=<%=RsMenu("id")%>

Den skal jo ikke udskrive det på ALLE punkter når du udskriver menuen igen.
Så du skal tjekke på, om det også er det punkt den er ved. ;)

Hvis du ikke kan gennemskue det, så bare skriv, så fikser jeg det lige i aften hvis der ikke er andre der kommer mig i forkøbet ;)
Avatar billede hehlers Nybegynder
23. juni 2006 - 15:05 #3
hehe, netop deri mit problem ligger.

Jeg fatter ikke rigtigt at flette det rigtigt sammen... ;)
Avatar billede jps6kb Novice
23. juni 2006 - 17:05 #4
Så kom han hjem :)
Uden at have testet det, så prøv det her:


  if menu_niveau_2 <> "" then
rettes til
  if menu_niveau_2 = rsMenu(id) then

Det er på linie 19 :)
Så tjekker du, om id'et passer istedet for bare om der ER et id.
Avatar billede hehlers Nybegynder
26. juni 2006 - 10:06 #5
Tusind tak !!! - Du er hermed udnævnt til HELT!

Tak for hjælpen.. ;)
Avatar billede jps6kb Novice
26. juni 2006 - 11:15 #6
Sejt! :D Jeg takker for point ;)
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