/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
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



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste