webForumDet fria alternativet

Visa aktiv i dropdown

ASP

11 svar · 258 visningar · startad av StefanP

Medlem sedan jan. 200284 inlägg
Frågan#1

Tjenare.
Tänkte höra varför detta inte fungerar.
Alltså det som är probbet är att den alltid visar den som är längst ner i dropdownmenyn istället för den man valt.

<select onChange="location.href=this.options[this.selectedIndex].value">
                            <%strArea = Request.Querystring("area")
If strArea = "vision" OR strArea = "personal" OR strArea = "utbildning" OR strArea= "material" OR strArea= "kundkommunikation" OR strArea= "mat" OR strArea= "deli" OR strArea= "servering" OR strArea= "service" OR strArea= "bemanning" OR strArea= "logistik" OR strArea= "aktiviteter" OR strArea= "linxannat" OR strArea= "bilaga" Then
Set Rs = Server.CreateObject("ADODB.Recordset")
visa = "SELECT * FROM " & strArea & " ORDER BY ordning"
End If
Rs.Open visa, Connect, adOpenStatic, adLockOptimistic 
%>

<%
Do While Rs.EOF = false
%>
                            <option value="visa.asp?area=<%=Rs("omrode")%>&identety=<%=Rs("identety")%>" selected><%=Rs("lenk")%></option>
<%
Rs.MoveNext
Loop
%>
                          </select>
Medlem sedan jan. 200284 inlägg
#2

Nu blir ju alla Selected.
Vilket är illa :(

Medlem sedan juni 20003 076 inlägg
#3

testa:

<select onChange="location.href=this.options[this.selectedIndex].value">
<%strArea = Request.Querystring("area")
If strArea = "vision" OR strArea = "personal" OR strArea = "utbildning" OR strArea= "material" OR strArea= "kundkommunikation" OR strArea= "mat" OR strArea= "deli" OR strArea= "servering" OR strArea= "service" OR strArea= "bemanning" OR strArea= "logistik" OR strArea= "aktiviteter" OR strArea= "linxannat" OR strArea= "bilaga" Then
Set Rs = Server.CreateObject("ADODB.Recordset")
visa = "SELECT * FROM '" & strArea & "' ORDER BY ordning"
End If
Rs.Open visa, Connect, adOpenStatic, adLockOptimistic 
%>
<%
Do While Rs.EOF = false
If Rs("omrade") = strArea Then %>
<option value="visa.asp?area=<%=Rs("omrode")%>&identety=<%=Rs("identety")%>" selected><%=Rs("lenk")%></option>
<%
Else %>
<option value="visa.asp?area=<%=Rs("omrode")%>&identety=<%=Rs("identety")%>"><%=Rs("lenk")%></option>
<%
End If
Rs.MoveNext
Loop
%>
</select>

------------------
Motto: Flest If-taggar vinner!

Medlem sedan feb. 200112 078 inlägg
#4

Smidigare att fråga innan man skriver ut raden istället:

<%
Do While Rs.EOF = false

If Rs("omrade") = strArea Then
strSel = " selected"
else
strSel = ""
end if 
%>

<option value="visa.asp?area=<%=Rs("omrode")%>&identety=<%=Rs("identety")%>"<%=strSel%>><%=Rs("lenk")%></option>

<%
Rs.MoveNext
Loop
%>

På detta sätt tilldelas variabeln strSel ett värde i vilket fall, om den skall vara selected så tilldelas den " selected" annars blir den tom ( "" ).
------------------
Jag gillar chokladblå himmel.

[Redigerat av OveRRidE den 06 feb 2002]

[Redigerat av OveRRidE den 06 feb 2002]

Medlem sedan jan. 200284 inlägg
#5

Den blir tom hela tiden.

Medlem sedan juni 200032 967 inlägg
#6

Vad är det som ska bestämma om valet skall markeras i selectboxen?

[r]: om det är ett subtypsproblem kan du ju alltid prova att konvertera i jämförelsen:

If cstr(Rs("omrade")) = cstr(strArea) Then

Mvh,

------------------
Let your body decide

[Redigerat av @nders den 06 feb 2002]

Medlem sedan jan. 200284 inlägg
#7

Får inte till det.
Blir fort samma sak.
Den visar det sista alternativet högst upp.

<select onChange="location.href=this.options[this.selectedIndex].value">
						  <%strArea = Request.Querystring("area")
If strArea = "vision" OR strArea = "personal" OR strArea = "utbildning" OR strArea= "material" OR strArea= "kundkommunikation" OR strArea= "mat" OR strArea= "deli" OR strArea= "servering" OR strArea= "service" OR strArea= "bemanning" OR strArea= "logistik" OR strArea= "aktiviteter" OR strArea= "linxannat" OR strArea= "bilaga" Then
Set Rs = Server.CreateObject("ADODB.Recordset")
visa = "SELECT * FROM " & strArea & " ORDER BY ordning"
End If
Rs.Open visa, Connect, adOpenStatic, adLockOptimistic 
%>

<%
Do While Rs.EOF = false
If cstr(Rs("omrode")) = cstr(strArea) Then
strSel = " selected"
else
strSel = ""
end if 
%>

<option value="visa.asp?area=<%=Rs("omrode")%>&identety=<%=Rs("identety")%>"<%=strSel%>><%=Rs("lenk")%></option>

<%
Rs.MoveNext
Loop
%>
						  </select>
Medlem sedan juni 200032 967 inlägg
#8

Och det är rs("omrade") som ska jämföras med strArea?

Om du kikar på den färdiga html-koden som skickats till din webbläsare, finns selected med någonstans bland dina options då?

------------------
Let your body decide

Medlem sedan jan. 200284 inlägg
#9

Ja.
Alla blir selected.

Medlem sedan juni 20003 076 inlägg
#10

vad står det för något i Rs("omrade")?
står det lika i alla posterna så blir ju alla selected också!

------------------
Motto: Flest If-taggar vinner!

Medlem sedan jan. 200284 inlägg
#11

Jo det har du rätt i.
Jag använder Rs("lenk") till att skriva ut alla val i dropdownen.
Så jag vet inte hur jag skall jämföra.

[Redigerat av StefanP den 06 feb 2002]

Medlem sedan jan. 200284 inlägg
#12

Nu löste jag det tillslut.

<%
Response.Write "<option value='visa.asp?area=" & Rs("omrode") & "&identety=" & trim(Rs("identety")) & "' "
if Request("area") = Rs("omrode") AND Request("identety") = trim(Rs("identety")) Then
Response.write " selected"
end if
Response.Write ">" & Rs("lenk") & "</option>"
%>

Tack för all hjälp.

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)