19. december 2006 - 09:10
Der er
16 kommentarer og 1 løsning
Undermenu i asp
Hey og god jul! Hvordan laver jeg en undermenu til nedenstående menu, således at når man klikker på et hovedmenupunkt, så kommer undermenuen frem nedenunder?? Eks. |Profil|Kontakt|Om os| Undermenu1 - Undermenu2 - Undermenu3 Hovedmenuen ser sådan ud: <!--#include file="connection.inc"--> <% strSQL = "Select * FROM Menu ORDER BY Tekst" Set rs = Conn.Execute(strSQL) If RS.EOF Then Response.Write "Der er ingen menupunkter" Else Response.Write " | " Do While NOT RS.EOF strNavn = rs("Tekst") strLink = "<a href='" & rs("Link") & "'>" & strNavn & "</a>" Response.Write strLink & " | " rs.MoveNext Loop End If Conn.Close Set Conn = Nothing %>
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
19. december 2006 - 09:55
#1
1) Du skal lave et felt i din database der hedder MenuID fx., og som standard skal menupunkter have MenuID = 0, hvis MenuID = 0 så skal det være hovedmenu. MenuID vil være hoved menu IDet og hvis man er inde under det ID skal den liste menupunkter der passer til det ID. Det kan du lige starte med at lave :-) Husk det skal være talfelt.
19. december 2006 - 10:15
#2
Okay, nu har jeg lavet feltet i DB, men er ikke helt klar over hvordan laver det andet... :o(
19. december 2006 - 10:58
#3
Prøv at google på 'menu java' så skal du bare se. Der findes i hundredvis af løsninger. Det er meget nemmere og hurtigere end at lave det i .asp
19. december 2006 - 11:01
#4
Det har jeg også haft, men har brug for at kunne rette menuen online uden at skulle uploade menuen igen. madeindk: Jeg har nu lavet følgende, men det virker ikke helt, kan du se hvad der er galt? <!--#include file="connection.inc"--> <% strSQL = "Select * FROM Menu ORDER BY Tekst" Set rs = Conn.Execute(strSQL) If RS.EOF Then Response.Write "Der er ingen menupunkter" Else Response.Write "<font color=""#999999""> | </font>" Do While NOT RS.EOF OR RS.BOF AND RS("MenuID") = 0 strNavn = rs("Tekst") strLink = "<a href='" & rs("Link") & "'>" & strNavn & "</a>" Response.Write strLink & "<font color=""#999999""> | </font>" rs.MoveNext Loop End If Conn.Close Set Conn = Nothing %>
19. december 2006 - 11:12
#5
Ok - cool - nu har jeg skrevet lidt kode som måske kan få dig til at se logikken i det :-) <!--#include file="connection.inc"--> <% strSQL = "SELECT * FROM Menu WHERE MenuID=0 ORDER BY Tekst ASC " Set rs = Conn.Execute(strSQL) If RS.EOF Then Response.Write "Der er ingen menupunkter" Else Response.Write "<font color=""#999999""> | </font>" Do While NOT RS.EOF OR RS.BOF strNavn = rs("Tekst") strLink = "<a href='" & rs("Link") & "'>" & strNavn & "</a>" Response.Write strLink & "<font color=""#999999""> | </font>" SQL = "SELECT * FROM menu WHERE menuID=" & rs("id") & "" Set rs2 = Conn.Execute(strSQL) If rs.eof Then Response.Write("Ingen undermenuer") Else Response.Write("Undermenu") rs2.movenext loop end if rs.MoveNext Loop End If Conn.Close Set Conn = Nothing %>
19. december 2006 - 11:15
#6
Okay nu virker den første del, men hvordan laver jeg så undermenuen?? Menu.asp <!--#include file="connection.inc"--> <% strSQL = "Select * FROM Menu ORDER BY Tekst" Set rs = Conn.Execute(strSQL) If RS.EOF Then Response.Write "Der er ingen menupunkter" Else Response.Write "<font color=""#999999""> | </font>" Do While NOT RS.EOF OR RS.BOF If RS("MenuID") = "0" Then strNavn = rs("Tekst") strLink = "<a href='" & rs("Link") & "'>" & strNavn & "</a>" Response.Write strLink & "<font color=""#999999""> | </font>" Else Response.Write "" End if rs.MoveNext Loop End If Conn.Close Set Conn = Nothing %>
19. december 2006 - 11:15
#7
Nej nej, hvad sker der for mig ?! Jeg prøver lige igen. <!--#include file="connection.inc"--> <% strSQL = "SELECT * FROM Menu WHERE MenuID=0 ORDER BY Tekst ASC " Set rs = Conn.Execute(strSQL) If RS.EOF Then Response.Write "Der er ingen menupunkter" Else Response.Write "<font color=""#999999""> | </font>" Do While NOT RS.EOF OR RS.BOF strNavn = rs("Tekst") strLink = "<a href='" & rs("Link") & "'>" & strNavn & "</a>" Response.Write strLink & "<font color=""#999999""> | </font>" strSQL = "SELECT * FROM menu WHERE menuID=" & rs("id") & "" Set rs2 = Conn.Execute(strSQL) If rs2.eof Then Response.Write("Ingen undermenuer") Else Response.Write("Undermenu") rs2.movenext loop end if rs.MoveNext Loop End If Conn.Close Set Conn = Nothing %>
19. december 2006 - 11:21
#8
Du laver vel bare en ny post med et menuID der har et ID som en hovedmenu har. Fx. hvis du har en hovedmenu (altså med menuID = 0) så laver du bare en ny post i Access der hedder "Test undermenu" med menuID = hovedmenuens ID, så skulle den meget gerne blive vist :-)
19. december 2006 - 11:51
#9
Submenuen førlger med på alle sider, but why?? <!--#include file="connection.inc"--> <% strSQL = "SELECT * FROM Menu WHERE MenuID=0 ORDER BY Tekst ASC " Set rs = Conn.Execute(strSQL) If RS.EOF Then Response.Write "Der er ingen menupunkter" Else Response.Write "<font color=""#999999""> | </font>" Do While NOT RS.EOF OR RS.BOF strNavn = rs("Tekst") strLink = "<a href='" & rs("Link") & "'>" & strNavn & "</a>" Response.Write strLink & "<font color=""#999999""> | </font>" strSQL2 = "SELECT * FROM Menu WHERE MenuID=" & rs("ID") & "" Set rs2 = Conn.Execute(strSQL2) Do While NOT rs2.eof strNavn2 = rs2("Tekst") strLink2 = "<a href='" & rs2("Link") & "'>" & strNavn2 & "</a>" Response.Write "<div class=""Submenu"">" & strLink2 & " </div>" rs2.movenext loop rs.MoveNext Loop End If Conn.Close Set Conn = Nothing %>
19. december 2006 - 21:52
#10
Jeg kunne vel ikke evt. få lov til at se din side? Jeg kunne godt tænke mig at se hvordan du vil ha det til at se ud :-)
19. december 2006 - 22:15
#11
Jo da, udover at undermenuerne følger med på alle sider, så viser de også oveni hinanden, det er nok noget CSS, som skal rettes.
http://elitesociety.dk/menu.png
20. december 2006 - 13:54
#13
Har nu prøvet med denne, men får fejlen: Microsoft OLE DB Provider for ODBC Drivers error '80040e14' You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 /login/admin/menu.asp, line 17 Menu.asp: <!--#include file="connection.inc"--> <% strSQL = "SELECT * FROM Menu WHERE MenuID=0 ORDER BY Tekst ASC " Set rs = Conn.Execute(strSQL) If RS.EOF Then Response.Write "Der er ingen menupunkter" Else Response.Write "<font color=""#999999""> | </font>" Do While NOT RS.EOF OR RS.BOF strNavn = rs("Tekst") strLink = "<a href='" & rs("Link") & "?MenuID=" & RS("ID") & "'>" & strNavn & "</a>" Response.Write strLink & "<font color=""#999999""> | </font>" strSQL2 = "SELECT * FROM Menu WHERE MenuID = " & Request.querystring("MenuID") Set rs2 = Conn.Execute(strSQL2) Do While NOT rs2.eof strNavn = rs2("Tekst") strLink = "<a href='" & rs2("Link") & "'>" & strNavn & "</a>" Response.Write "<div class=""Submenu"">" & strLink & " </div>" rs2.movenext loop rs.MoveNext Loop End If Conn.Close Set Conn = Nothing %>
20. december 2006 - 14:57
#14
Jamen, er MenuID i din querystringen da udfyldt? Ellers prøv dette. <!--#include file="connection.inc"--> <% strSQL = "SELECT * FROM Menu WHERE MenuID=0 ORDER BY Tekst ASC " Set rs = Conn.Execute(strSQL) If RS.EOF Then Response.Write "Der er ingen menupunkter" Else Response.Write "<font color=""#999999""> | </font>" Do While NOT RS.EOF OR RS.BOF strNavn = rs("Tekst") strLink = "<a href='" & rs("Link") & "?MenuID=" & RS("ID") & "'>" & strNavn & "</a>" Response.Write strLink & "<font color=""#999999""> | </font>" If Request.QueryString("MenuID") <> "" Then strSQL2 = "SELECT * FROM Menu WHERE MenuID = " & Request.querystring("MenuID") Set rs2 = Conn.Execute(strSQL2) Do While NOT rs2.eof strNavn = rs2("Tekst") strLink = "<a href='" & rs2("Link") & "'>" & strNavn & "</a>" Response.Write "<div class=""Submenu"">" & strLink & " </div>" rs2.movenext loop End If rs.MoveNext Loop End If Conn.Close Set Conn = Nothing %>
20. december 2006 - 19:14
#15
Så virker menuen og undermenuen :o), men undermenupunkterne vises oveni hinanden og ikke ved siden af hinanden???? CSS'en ser sådan ud: .Submenu { position:absolute; text-align: left; left:5px; top:18px; width:100%; height:18px; margin-left:0px; margin-top: 0px; border-bottom: 0px solid #606060; z-index: 5; } .Submenu a { color: #EEEEEE; font-size: 13px; font-weight: bold; text-decoration: none; z-index: 5; } .Submenu a:hover { color: #FF6600; }
20. december 2006 - 22:24
#16
Hvorfor skal de overhovedet stå i en div? Og ikke i en tabel, så vil problemet aldrig opstå :-) Men her er et svar.
20. december 2006 - 22:59
#17
Jeg har løst det på følgende måde ;o) Tusind tak for hjælpen. <!--#include file="connection.inc"--> <% strSQL = "SELECT * FROM Menu WHERE MenuID=0 ORDER BY ID ASC " Set rs = Conn.Execute(strSQL) If RS.EOF Then Response.Write "Der er ingen menupunkter" Else Response.Write "<font color=""#999999""> | </font>" Do While NOT RS.EOF OR RS.BOF strNavn = rs("Tekst") strLink = "<a href='" & rs("Link") & "?menuid=" & RS("ID") & "'>" & strNavn & "</a>" Response.Write strLink & "<font color=""#999999""> | </font>" rs.MoveNext Loop End If If Request.QueryString("MenuID") <> "" Then strSQL2 = "SELECT * FROM Menu WHERE MenuID = " & Request.querystring("MenuID") Set rs2 = Conn.Execute(strSQL2) Response.Write "<table class=""Submenu"">" Do While NOT rs2.eof strNavn = rs2("Tekst") strLink = "<a href='" & rs2("Link") & "?menuid=" & Request.querystring("MenuID") & "'>" & strNavn & "</a>" Response.Write strLink & " " rs2.movenext loop Response.Write "</table>" End If Conn.Close Set Conn = Nothing %>
Kurser inden for grundlæggende programmering