Avatar billede pelkjaer Nybegynder
06. august 2002 - 16:02 Der er 4 kommentarer og
1 løsning

Problem med "selected" i en dynamisk select menu

Jeg har denne select som henter indhold fra databasen:

<select name="selMainMenu" id="selMainMenu" onChange="document.location.href='/cms/editor.asp?MainMenuId='+this.options[this.selectedIndex].value;">
<option>Vælg menupunkt</option>
<%
While (NOT rsMenuSel.EOF)
%>
<option value="<%=(rsMenuSel.Fields.Item("MainMenuId").Value)%>"><%=(rsMenuSel.Fields.Item("MenuTitle").Value)%></option>
<%
  rsMenuSel.MoveNext()
Wend
If (rsMenuSel.CursorType > 0) Then
  rsMenuSel.MoveFirst
Else
  rsMenuSel.Requery
End If
%>
</select>

Den virker sådan set godt nok, bortset fra at "Vælg menupunkt" altid er "selected/valgt".

Det skal kun være valgt når jeg loader siden ind, uden ?MainMenuId=whatever i enden af min side.

Hvis jeg Når jeg har valgt et punkt (og den dermed skifter min url) skal det jeg har valgt, også være "selected/valgt".

Det er da muligt det er javascripten der er forkert i onchange, men det ser nu rigtigt ud synes jeg.
Avatar billede a1a1 Novice
06. august 2002 - 16:10 #1
jamen du loader jo også siden ind igen :)

du må checke om det valgte id er lig det idatabasen

ala

<%
while Not rsMenusel.eof
response.write "<option value=""" & (rsMenuSel.Fields.Item("MainMenuId").Value) & """ "
If Cdbl(Request.MeainMunuID) = Cdbl(rsMenuSel.Fields.Item("MainMenuId").Value)) Then
Response.Write " selected=""selected"" "
End If
Response.Write ">" & (rsMenuSel.Fields.Item("MenuTitle").Value)
Response.Write "</option>"

rsmenusel.movenext
wend

osv......

;)
Avatar billede a1a1 Novice
06. august 2002 - 16:11 #2
hovse....

If Cdbl(Request.MeainMunuID) = Cdbl(rsMenuSel.Fields.Item("MainMenuId").Value)) Then
skal være

If Cdbl(Request("MeainMunuID")) = Cdbl(rsMenuSel.Fields.Item("MainMenuId").Value)) Then

;)
Avatar billede pelkjaer Nybegynder
06. august 2002 - 16:14 #3
Jep, jeg koger rimeligt meget :)

Havde jeg ikke lige tænkt på.
Avatar billede pelkjaer Nybegynder
06. august 2002 - 16:36 #4
Hmm..jeg var måske lidt for hurtig til at lukke.
Jeg kan ikke få det til at makke ret.

Jeg har nu:

<select name="selMainMenu" id="selMainMenu" onChange="document.location.href='/cms/editor.asp?MainMenuId='+this.options[this.selectedIndex].value;">
<option value="" <%If (Not isNull((rsMenuSel.Fields.Item("MainMenuId").Value))) Then If ("" = CStr((rsMenuSel.Fields.Item("MainMenuId").Value))) Then Response.Write("SELECTED") : Response.Write("")%>>Vælg menupunkt</option>
<%
While (NOT rsMenuSel.EOF)
%>
<option value="<%=(rsMenuSel.Fields.Item("MainMenuId").Value)%>" <%If (Not isNull((rsMenuSel.Fields.Item("MainMenuId").Value))) Then If (CStr(rsMenuSel.Fields.Item("MainMenuId").Value) = CStr((rsMenuSel.Fields.Item("MainMenuId").Value))) Then Response.Write("SELECTED") : Response.Write("")%> ><%=(rsMenuSel.Fields.Item("MenuTitle").Value)%></option>
<%
  rsMenuSel.MoveNext()
Wend
If (rsMenuSel.CursorType > 0) Then
  rsMenuSel.MoveFirst
Else
  rsMenuSel.Requery
End If
%>
</select>

Hvorfor virker det ikke - nu er sidste record konsekvent valgt.
Avatar billede medions Nybegynder
07. august 2002 - 00:28 #5
<% Response.Write(Request.QueryString("MainMenuId")) %>
<select name="selMainMenu" id="selMainMenu" onChange="document.location.href='editor.asp?MainMenuId='+this.options[this.selectedIndex].value;">
<option value="0">Vælg menupunkt</option>
<%
strSelected = ""
    While (NOT rsMenuSel.EOF)
    strRecord = rsMenuSel.Fields.Item("MainMenuId").Value
        If CInt(Request.QueryString("MainMenuId")) = CInt(strRecord) Then
            strSelected = " SELECTED"
        Else
            strSelected = ""
        End If 

        Response.Write("<option" & strSelected & " value='" & strRecord & "'>" &_
                          rsMenuSel.Fields.Item("MenuTitle").Value & vbCrLf)
    rsMenuSel.MoveNext()
    Wend
   
    If (rsMenuSel.CursorType > 0) Then
        rsMenuSel.MoveFirst
    Else
        rsMenuSel.Requery
    End If
%>
</select>

//>Rune
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