Avatar billede razser Nybegynder
23. februar 2005 - 13:55 Der er 14 kommentarer og
1 løsning

Markering af aktivt menupunkt

Jeg henter nogle hovedmenu-punkter ud fra en access-database. Når man klikker på ét menupunkt, skal det markeres - evt. ved at der sættes en class på/rundt om a href'en - hvordan gør jeg?

(Det skal være ved hjælp af ASP - ikke javascript. Man skal ligeledes kunne komme fra en ekstern side, og alligevel er menupunktet fremhævet - selv om man ikke har klikket internt)

Mit script ser sådan ud:

<%
if strParentPageID = "" then
strParentPageID = 0
else
strParentPageID = Request.QueryString(ParentPageID)
End if

'Title =  Request.QueryString("MenuText")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DBQ=" & Server.Mappath("pages.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT * FROM Page WHERE ParentPageID=" & strParentPageID & " ORDER BY PageSort"
Set rs = Conn.Execute(SQL)

Response.write "<div class=N1>"

Do While Not rs.EOF
Response.write "<a href=" & chr(34) & "index.asp?ID=" & rs("PageID") & chr(34) & ">"
Response.write rs("MenuText")
Response.write "</a>&nbsp;&nbsp;"
rs.MoveNext
loop
Response.write "</div>"
%>
Avatar billede mortency Nybegynder
23. februar 2005 - 14:17 #1
Do While Not rs.EOF
If Cint(strParentPageID) = Cint(rs("PageID")) Then
  Response.write "<b><a href=" & chr(34) & "index.asp?ID=" & rs("PageID") & chr(34) & ">" & rs("MenuText") & "</a>&nbsp;&nbsp;</b>"
Else
  Response.write "<a href=" & chr(34) & "index.asp?ID=" & rs("PageID") & chr(34) & ">" & rs("MenuText") & "</a>&nbsp;&nbsp;"
End if
rs.MoveNext
loop
Response.write "</div>"
Avatar billede razser Nybegynder
23. februar 2005 - 14:51 #2
hmm, det virker ikke rigtigt....???
Avatar billede mortency Nybegynder
23. februar 2005 - 14:54 #3
Er disse like da? Cint(strParentPageID) = Cint(rs("PageID"))

Når du går inn på et menypunkt?
Avatar billede mortency Nybegynder
23. februar 2005 - 14:59 #4
Og du trenger ikke å avvise svare før vi har postet ferdig.

Prøv dette.

<%
if strParentPageID = "" then
strParentPageID = 0
else
strParentPageID = Request.QueryString(ParentPageID)
End if

'Title =  Request.QueryString("MenuText")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DBQ=" & Server.Mappath("pages.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT * FROM Page WHERE ParentPageID=" & strParentPageID & " ORDER BY PageSort"
Set rs = Conn.Execute(SQL)

Response.write "<div class=N1>"

Do While Not rs.EOF
'Hvis id`en strParentPageID er lik PageID fra databasen skal linken gjøres bold.
If Cint(strParentPageID) = Cint(rs("PageID")) Then
    'Det var samme id vi gjør linken fet.
    Response.write "<b><a href=" & chr(34) & "index.asp?ID=" & rs("PageID") & chr(34) & ">" & rs("MenuText") & "</a>&nbsp;&nbsp;</b>"
Else
    'ID`ene var ikke like vi lar de være.
    Response.write "<a href=" & chr(34) & "index.asp?ID=" & rs("PageID") & chr(34) & ">" & rs("MenuText") & "</a>&nbsp;&nbsp;"
End if
rs.MoveNext
loop
Response.write "</div>"
%>
Avatar billede mortency Nybegynder
23. februar 2005 - 15:01 #5
Vis dette ikke virker prøv å se hva id`\ene skriver ut:

<%
if strParentPageID = "" then
strParentPageID = 0
else
strParentPageID = Request.QueryString(ParentPageID)
End if

'Title =  Request.QueryString("MenuText")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DBQ=" & Server.Mappath("pages.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT * FROM Page WHERE ParentPageID=" & strParentPageID & " ORDER BY PageSort"
Set rs = Conn.Execute(SQL)

Response.write "<div class=N1>"

Do While Not rs.EOF
'Skriv ut denne og se om det er noen som er like
Response.Write("strParentPageID=" & strParentPageID & "<br>PageID = " &  rs("PageID")
rs.MoveNext
loop
Response.write "</div>"
%>
Avatar billede razser Nybegynder
23. februar 2005 - 15:18 #6
Det virker nu med lidt ændringer:

Do While Not rs.EOF
If Cint(rs("PageID")) = Cint(strPageID) Then
Response.write "<a href=" & chr(34) & "index.asp?ID=" & rs("PageID") & chr(34) & ">" & "<b>" & rs("MenuText") & "</b></a>&nbsp;&nbsp;"
Else
  Response.write "<a href=" & chr(34) & "index.asp?ID=" & rs("PageID") & chr(34) & ">" & rs("MenuText") & "</a>&nbsp;&nbsp;"
End if
rs.MoveNext
loop
Response.write "</div>"


Takker. Post et svar, og du vil få points....
Avatar billede mortency Nybegynder
23. februar 2005 - 15:29 #7
<b> skal innenfor <a> taggen... sorry!

Her er svaret.
Avatar billede razser Nybegynder
23. februar 2005 - 15:31 #8
Jeg har et lille spørgsmål mere. Hvis man klikker på et undermenupunkt, må hovedpunktet stadig gerne være markeret. Hvordan kan man det? Jeg vil gerne give flere points....
Avatar billede mortency Nybegynder
23. februar 2005 - 15:34 #9
Det letteste er nok å slnge på id`en på neste punkt også.
Avatar billede mortency Nybegynder
23. februar 2005 - 15:35 #10
Ta å post koden din.
Avatar billede razser Nybegynder
23. februar 2005 - 15:53 #11
Min kode til undermenuen er dårligt konstrueret og ikke færdig. Jeg inkluderer den på index-siden <!--#INCLUDE FILE="leftmenu.asp"-->. Problemet er, at menupunkterne forsvinder, når man klikker på et af dem, fordi den selecter fra Parent...

<%
if Request.QueryString("ID") = "" Then
strParentID = 2
else
strParentID = Request.QueryString("ID")
End if

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DBQ=" & Server.Mappath("pages.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT * FROM Page WHERE ParentPageID=" & strParentID & " ORDER BY PageSort"
Set rs2 = Conn.Execute(SQL)
If Not rs2.EOF Then
           
Do While Not rs2.EOF
           
Response.write "<a style='color:#ffffff' href=" & chr(34) & "Index.asp?ID=" & rs2("PageID") & chr(34) & ">"
Response.write rs2("MenuText")
Response.write "</a><br>"

rs2.MoveNext
loop

end if

rs2.Close
%>
Avatar billede mortency Nybegynder
23. februar 2005 - 16:20 #12
Har du en side jeg kan se på løsningen. Det er lettere.
Avatar billede razser Nybegynder
23. februar 2005 - 16:29 #13
Jeg arbejder på det lokalt, så jeg kan desværre ikke vise det offentligt...
Avatar billede razser Nybegynder
23. februar 2005 - 18:06 #14
Jeg kan dog godt sende noget til dig på en mail - om du vil ?
Avatar billede mortency Nybegynder
23. februar 2005 - 20:42 #15
mortencyren@yahoo.no
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