|
| Dynamisk <option selected> i drop down men~ Fra : S |
Dato : 16-01-03 17:38 |
|
Hej,
På en søgeside har jeg en drop down menu (fra database), hvor man kan søge i
forskellige kategorier i en tabel. Den ser nogenlunde sådan hér ud:
<% ' SQL udtræk....... %>
<select name="test" size="1">
<% do until RS.eof %>
<option value="<%= RS("value") %>"><%= RS("Name") %></option>
<% RS.movenext %>
<% loop %>
</select>
På søgeresultatsiden vil jeg så have highlighted den valgte option, det har
jeg prøvet på følgende måde:
<option <% if RS("Value") = request.form("test") then
response.write("selected") %><% end if %> value="<%= RS("value") %>"><%=
RS("Name") %></option>
....men det virker ikke..:(
| |
M@rk (16-01-2003)
| Kommentar Fra : M@rk |
Dato : 16-01-03 18:44 |
|
Thu, 16 Jan 2003 17:37:37 +0100, berigede "S" <webwatcher@forum.dk>
dk.edb.internet.webdesign.serverside.asp med:
><option <% if RS("Value") = request.form("test") then
>response.write("selected") %><% end if %> value="<%= RS("value") %>"><%=
>RS("Name") %></option>
Jeg er desværre ikke haj nok til, at vurdere ovenstående - jeg har lavet
stuntet på "den hårde måde" og det virker da:
If rs("xx") = "Nej" then
Response.Write "<td valign='top'><select
name='xx'><option value='Ja'>Ja</option><option selected
value='Nej'>Nej</option></select></td>"
Else
If rs("xx") = "Ja" then
Response.Write "<td valign=""top""><select
name='xx><option selected value='Ja'>Ja</option><option
value='Nej'>Nej</option></select></td>"
End If
End If
Det er naturligvis en kluntet måde, hvis man har 344.231.123 mulige svar
/Mark
--
M@rk, the unknown @ vosborg.dk - ICQ #6564215
"When the rythm-section ain't making it
- go for it your self" ~ Ben Webster
| |
S (16-01-2003)
| Kommentar Fra : S |
Dato : 16-01-03 19:10 |
|
"M@rk" <unknown@vosborg.invalid> wrote in message
news:me4mPpNmWyeyCN63zr634pWXuwgx@4ax.com...
> Thu, 16 Jan 2003 17:37:37 +0100, berigede "S" <webwatcher@forum.dk>
> dk.edb.internet.webdesign.serverside.asp med:
>
> ><option <% if RS("Value") = request.form("test") then
> >response.write("selected") %><% end if %> value="<%= RS("value") %>"><%=
> >RS("Name") %></option>
>
> Jeg er desværre ikke haj nok til, at vurdere ovenstående - jeg har lavet
> stuntet på "den hårde måde" og det virker da:
>
> If rs("xx") = "Nej" then
> Response.Write "<td valign='top'><select
> name='xx'><option value='Ja'>Ja</option><option selected
> value='Nej'>Nej</option></select></td>"
>
> Else
>
> If rs("xx") = "Ja" then
> Response.Write "<td valign=""top""><select
> name='xx><option selected value='Ja'>Ja</option><option
> value='Nej'>Nej</option></select></td>"
> End If
> End If
>
> Det er naturligvis en kluntet måde, hvis man har 344.231.123 mulige svar
Ja jeg har en del, så den dur ikke....
/S
| |
TH (16-01-2003)
| Kommentar Fra : TH |
Dato : 16-01-03 19:45 |
|
Hej,
"S" <webwatcher@forum.dk> skrev i en meddelelse
news:3e26dff1$0$24682$d40e179e@nntp02.dk.telia.net...
> ...men det virker ikke..:(
Jeg har hurtigt skimmet det og umiddelbart ingen probs. Dog har du een
"fejl". Din form værdi er en streng og rs("value") er formentligt en
integer?
Nå men under alle omstændigheder bør du gøre sådan (forudsat "value" er et
tal):
tmpForm=Request.Form("test")
tmpValue=rs("value")
<Kode til SELECT her>
.....
if cint(tmpValue)=cint(tmpForm) then
tmpSelected="selected"
end if
<option <%=tmpSelected%> value....blabla....
Alternativt kan du lave dine variable (varianter) om ved at tillæge en
værdi, fx:
tmpForm=Request.Form("test")+0
Hvilket laver strengen "34" om til tallet 34.
Begge metoder kræver at tmpValue og tmpForm ikke er tomme eller NULL, hvis
dette ikke er sikkert bør du chekke det inden du fx bruger "cint" eller
andet...
Håber det gav mening? :)
Ellers må jeg kigger nærmere på din kode...
mvh
TH
| |
TH (16-01-2003)
| Kommentar Fra : TH |
Dato : 16-01-03 19:48 |
|
Hej,
Lige en tilføjelse...Hvis du har mange optioner fx. 1.000.000 så duer
integer jo ikke dvs "cint()" kan ikke bruges...brug istedet "clng()" hvilket
laver long istedetfor integers.
/TH
| |
Anders Lund (16-01-2003)
| Kommentar Fra : Anders Lund |
Dato : 16-01-03 19:51 |
|
"TH" <th@cogito.dk> skrev i en meddelelse
news:3e26fe52$0$121$edfadb0f@dtext02.news.tele.dk...
> Hej,
>
> Lige en tilføjelse...Hvis du har mange optioner fx. 1.000.000 så duer
> integer jo ikke dvs "cint()" kan ikke bruges...brug istedet "clng()"
hvilket
> laver long istedetfor integers.
Hvis det nu er heltal, er det så noget galt med int() ?
--
Mvh
Anders Lund
AndersGED@zaim.dk
fjern geden fra min email adresse
| |
TH (16-01-2003)
| Kommentar Fra : TH |
Dato : 16-01-03 20:33 |
|
Davs,
"Anders Lund" <andersGED@zaim.dk> skrev i en meddelelse
news:b06uui$p6l$1@sunsite.dk...
> Hvis det nu er heltal, er det så noget galt med int() ?
Integers er ikke heltal. Men heltal mellem (ca) -35000 og +35000.
/TH
| |
S (16-01-2003)
| Kommentar Fra : S |
Dato : 16-01-03 20:21 |
|
"TH" <th@cogito.dk> wrote in message
news:3e26fdb2$0$131$edfadb0f@dtext02.news.tele.dk...
> Hej,
>
> "S" <webwatcher@forum.dk> skrev i en meddelelse
> news:3e26dff1$0$24682$d40e179e@nntp02.dk.telia.net...
>
> > ...men det virker ikke..:(
>
> Jeg har hurtigt skimmet det og umiddelbart ingen probs. Dog har du een
> "fejl". Din form værdi er en streng og rs("value") er formentligt en
> integer?
>
> Nå men under alle omstændigheder bør du gøre sådan (forudsat "value" er et
> tal):
>
> tmpForm=Request.Form("test")
> tmpValue=rs("value")
>
> <Kode til SELECT her>
> ....
> if cint(tmpValue)=cint(tmpForm) then
> tmpSelected="selected"
> end if
> <option <%=tmpSelected%> value....blabla....
>
> Alternativt kan du lave dine variable (varianter) om ved at tillæge en
> værdi, fx:
> tmpForm=Request.Form("test")+0
>
> Hvilket laver strengen "34" om til tallet 34.
>
> Begge metoder kræver at tmpValue og tmpForm ikke er tomme eller NULL, hvis
> dette ikke er sikkert bør du chekke det inden du fx bruger "cint" eller
> andet...
> Håber det gav mening? :)
> Ellers må jeg kigger nærmere på din kode...
Fandt ud af det:
<option <% if Cstr(RS("Value")) = CStr(request.form("test")) then
response.write("selected") %> value="<%= RS("value") %>"></option>
Men tak for forsøget..:)
/S
| |
TH (16-01-2003)
| Kommentar Fra : TH |
Dato : 16-01-03 20:33 |
|
Davs,
"S" <webwatcher@forum.dk> skrev i en meddelelse
news:3e270654$0$24706$d40e179e@nntp02.dk.telia.net...
> Men tak for forsøget..:)
Forsøg? Det var da præcis det jeg skrev :)
Blot var dine variable strenge begge to istedetfor heltal.
?
/TH
| |
S (16-01-2003)
| Kommentar Fra : S |
Dato : 16-01-03 20:53 |
|
"TH" <th@cogito.dk> wrote in message
news:3e2708d2$0$134$edfadb0f@dtext02.news.tele.dk...
> Davs,
>
> "S" <webwatcher@forum.dk> skrev i en meddelelse
> news:3e270654$0$24706$d40e179e@nntp02.dk.telia.net...
>
> > Men tak for forsøget..:)
>
> Forsøg? Det var da præcis det jeg skrev :)
> Blot var dine variable strenge begge to istedetfor heltal.
Ja, og derfor virkede det jo ikke....
/S
| |
TH (16-01-2003)
| Kommentar Fra : TH |
Dato : 16-01-03 22:19 |
|
Davs,
"S" <webwatcher@forum.dk> skrev i en meddelelse
news:3e270dad$0$24709$d40e179e@nntp02.dk.telia.net...
> Ja, og derfor virkede det jo ikke....
Og derfor skrev jeg også (citat):
"Nå men under alle omstændigheder bør du gøre sådan (forudsat "value" er et
tal):"
Bemærk orderne "forudsat "value" er et tal):"....
Men det er ok...lad os stoppe her. Du klarer dig jo nok uden hjælp i
fremtiden ser jeg....
/TH
| |
Jens Gyldenkærne Cla~ (16-01-2003)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 16-01-03 23:27 |
|
S skrev:
> <option <% if Cstr(RS("Value")) = CStr(request.form("test"))
> then response.write("selected") %> value="<%= RS("value")
> %>"></option>
I ovenstående kode henter du værdien request.form("test") en gang
for hvert element i din liste. Det er bedre at lægge værdien i en
variabel og så sammenligne variabelindholdet med værdien fra dit
recordset.
Jeg kan ikke huske om asp-kode optimeres af parseren, så det er
muligt at asp-parseren "af sig selv" finder ud af at gemme den
requestede værdi, men jeg tror det ikke.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Torben Brandt (17-01-2003)
| Kommentar Fra : Torben Brandt |
Dato : 17-01-03 00:34 |
|
TH wrote in dk.edb.internet.webdesign.serverside.asp:
>
> tmpForm=Request.Form("test")
> tmpValue=rs("value")
Denne sidste linie skal ind under løkken.
>
> <Kode til SELECT her>
Her må løkken starte, da der kun skal skrives et select-tag
> .....
> if cint(tmpValue)=cint(tmpForm) then
> tmpSelected="selected"
Da vi er inde i en løkke, så skal vi her lige tilføje:
else
tmpSelected = ""
For ellers vil tmpSelected være "selected" hvis if-sætningen bare har været
sand ved denne eller tidligere records fra databasen.
> end if
> <option <%=tmpSelected%> value....blabla....
>
Her slutter løkken.
Her skrives /select-tag til browseren
mvh Torben
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
TH (17-01-2003)
| Kommentar Fra : TH |
Dato : 17-01-03 00:44 |
|
Hej,
"Torben Brandt" <torben@actuar.dk> skrev i en meddelelse
news:b07fhp$nua$1@sunsite.dk...
> Denne sidste linie skal ind under løkken.
Jeps :)
> Her må løkken starte, da der kun skal skrives et select-tag
Præcis, jeg regnede med at han (S) kunne kode lidt selv....beskrivelsen var
kun for at påpege "variable" problemer...
[Snip]
/TH
| |
Torben Brandt (17-01-2003)
| Kommentar Fra : Torben Brandt |
Dato : 17-01-03 00:55 |
|
TH wrote in dk.edb.internet.webdesign.serverside.asp:
> "Torben Brandt" <torben@actuar.dk> skrev i en meddelelse
> news:b07fhp$nua$1@sunsite.dk...
>
> > Denne sidste linie skal ind under løkken.
>
> Jeps :)
>
> > Her må løkken starte, da der kun skal skrives et select-tag
>
> Præcis, jeg regnede med at han (S) kunne kode lidt selv....beskrivelsen var
> kun for at påpege "variable" problemer...
>
Det tror jeg nu også.
Det var mest ment som en servicemeddelelse til dem, der måske ikke havde læst
hele tråden. Når jeg skrev at noget skulle ind under løkken, så ville jeg bare
lige gøre opmærksom på hvor den var
mvh Torben
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
TH (17-01-2003)
| Kommentar Fra : TH |
Dato : 17-01-03 01:03 |
|
Hej,
"Torben Brandt" <torben@actuar.dk> skrev i en meddelelse
news:b07gnv$2em$1@sunsite.dk...
> Det var mest ment som en servicemeddelelse til dem, der måske ikke havde
læst
> hele tråden. Når jeg skrev at noget skulle ind under løkken, så ville jeg
bare
> lige gøre opmærksom på hvor den var
Jeg er helt enig...glem mit "snæversynede" indlæg :)
Mvh
TH
| |
|
|