Avatar billede dp2001 Juniormester
14. januar 2003 - 20:41 Der er 7 kommentarer og
2 løsninger

value ifb. med <select>

Kan man slet ikke angive en default value ifb. med en <select>, hvori jeg har forskellige <option>'s?

Jeg henter nemlig fra et recordset til brug for formularen - og derfor kan value være forskellig.

Altså noget a la:

<select value='<%Response.Write rs("frugt")%>'>
<option>Pære</option>
<option>Banan</option>
</select>
Avatar billede tangveje Nybegynder
14. januar 2003 - 23:23 #1
Er ikke helt sikker på det er det du mener... Men du kan få en bestemt option til at være valgt på forhånd. Et lille eksempel

<select name="frugter">
  <option>Pære</option>
  <option selected>Banan</option>
  <option>Æble</option>
</select>

Nu er jeg ikke just særlig skrap til ASP, men jeg går ud fra du udskriver de forskellige options dynamisk med ASP, og fylder værdierne fra databasen i dem.

I så fald kan du lave en lille test noget ala dette (husk, jeg er ikke god til ASP, så det er kun et eksempel, sikkert med fejl i og det hele :)

if ( rs("frugt") == "Banan" ) then
  response.write "<option selected>" & rs("frugt") & "</option>"
else
  response.write "<option>" & rs("frugt") & "</option>"
end if

Håber du kan tyde min wannabe-ASP kode her, ideen burde være tydelig :)
Avatar billede dp2001 Juniormester
14. januar 2003 - 23:52 #2
Det er faktisk også det jeg har gjort hidtil - i hvert fald noget lignende! ;-)

Men jeg vil gerne undgå en løsning, hvor jeg skal hard code reference-data.
Avatar billede tangveje Nybegynder
15. januar 2003 - 00:20 #3
Nu er jeg faktisk ikke helt sikker på jeg er med på hvad du mener/ønsker...

Jeg kan forstå du øsnker at have en bestemt option valgt på forhånd, i så fald tror jeg det er den eneste måde at gøre det på (kan selvfølgelig gøres lidt mere dynamisk, men den grundlæggende ide er den samme)

Men hvordan definerer du kriteriet for hvilken option der skal være valgt på forhånd?

Når du nu henter dine værdier ud fra en database kunne der jo være et felt i den database som kunne være sand eller falsk. Hvis sand skulle det felt vælges på forhånd.

Altså en tabel i stil med denne

frugt    selected
------  --------
Æble    0
Pære    0
Banan    1

Ved ikke om det er den smarteste løsning, afhænger nok af projektet, men det er den mest dynamiske løsning jeg kan komme på.
Avatar billede dp2001 Juniormester
15. januar 2003 - 00:32 #4
Nej - det dur ikke.

Jeg henter data fra en tabel og skal sammenligne med reference data fra anden tabel for at tage stilling til, om jeg skal bruge selected='selected'.

Så øvelsen går ikke ud på at have en default reference værdi, men at bruge værdien i førstnævnte tabel.
Avatar billede olebole Juniormester
15. januar 2003 - 01:58 #5
<ole>

Jeg tror, du bliver nødt til forklare, hvad du vil lidt tydeligere. Ellers bliver det nok svært at hjælpe dig  :)

/mvh
</bole>
Avatar billede midas_dk Nybegynder
15. januar 2003 - 02:13 #6
Nej, der er ingen mulighed for at definere en "standard-værdi" for en selectbox. Du har to muligheder - enten kan du jo finde ud af hvad der skal være valgt via javascript (som ville passe til kategorien). Ellers kan du bruge ASP, hvilket du åbenbart allerede gør...

Hvis nu du gennemløber din "referencetabel" først, er der vel ingen problemer i at finde ud af om der er en match, når du løber din anden tabel igennem? Du skal vel sådan set bare sætte et flag af en art, eller definere et andet sammenligningsgrundlag (som beskrevet ovenfor):

If RS("frugt") = "Banan" Then
...
Else
...
End If

- bare erstat "Banan" med den streng, du definerer under gennemløb af referencetabellen... Eller har jeg misset noget?
Avatar billede dp2001 Juniormester
15. januar 2003 - 09:01 #7
Det var egentlig det spørgsmålet gik på - om det var muligt at definere en "standardværdi" for en select-box. Jeg er også nået frem til, at jeg skal lave noget a la...
__________________

form_select = "<select name='frugt'>"

Do Until rs2.EOF

if rs1("frugt") = rs2("frugt") then
form_option = "<option selected='selected'>" & rs2("frugt") & "</option>"
else
form_option = "<option>" & rs2("frugt") & "</option>"
end if

form_select = form_select & form_option

rs2.MoveNext

Loop

form_select = form_select & "</select>"

____________________
Tak for jeres input.
Avatar billede midas_dk Nybegynder
16. januar 2003 - 09:27 #8
Hvem har så fortjent pointene?
Avatar billede dp2001 Juniormester
16. januar 2003 - 10:38 #9
Godt spørgsmål.......I får  sg* lov til at dele i porten.

Jeg kan hilse og sige, at jeg netop har fået det til at virke med ovenstående kode.

Tak for bidrag.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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