Avatar billede ronniw Nybegynder
10. september 2003 - 02:45 Der er 20 kommentarer og
1 løsning

selecte bestemt option value

Hey -

Jeg er ved at lave en hjemmeside hvor man, som bruger, kan indtaste nogle oplysninger, der ryger ind i en database. Disse oplysninger kan så efterfølgende ændres på en anden side.

Altsammen fint. Eksempelvis udfor navn, så sættes feltets value bare til at vise <%rsProfile("navn")%> (så siden viser brugeres gemte navn fra databasen.

((((((MEN))))))

Jeg bruger også en option value til at angive ét ud af mange valg.

Frustration: Hvordan får jeg denne option value (med samme indhold) til at starte med at vise brugerens gemte valg, hentet fra databasen når ændre-oplysninger-siden loades?

Jeg har prøvet med <option value="<%=rsProfile("kons")%>"></option>, men den holder ikke....??

Er det noget med, at den skal sættes til at selecte den bestemte value ??

HVORDAN??
Avatar billede bearhugx Nybegynder
10. september 2003 - 02:49 #1
det gør du ved, udfor den valgte option at skrive selected

f.eks.

<select>
  <option value="x"> x </option>
  <option value="y" selected> y </option>
  <option value="z"> z </option>
</select>
Avatar billede ronniw Nybegynder
10. september 2003 - 02:53 #2
men hvis jeg ikke på forhånd ved, hvad brugeren vælger - 'selected' skal være variabel afhængig af, hvad brugeren har valgt. Denne oplysning hentes fra databasen... hvordan det?
Avatar billede bearhugx Nybegynder
10. september 2003 - 02:54 #3
så det du så bliver nød til at lave er en funktion (ASP?) som udskriver de forskellige muligheder, og for hver mulighed tjecker, om det er den valgte mulighed, der skrives ud - i så tilfælde skal der så sættes et selected bagved..

derudover - husk at hvis du koder xhtml - så må
checked
og
selected

ikke stå "alene" (såkaldt attribute minimization) - de skal udskrives som
checked="checked" / checked="true"
og
selected="selected"  / selected="true"
Avatar billede bearhugx Nybegynder
10. september 2003 - 02:56 #4
hvis jeg læser dit indlæg ret, så kender du valuen

  rsProfile("kons")

så det du kan gøre er at sige

* gennenløb alle OPTIONS for denne select-boks
  - Hvis VALUE for en given option er == rsProfile("kons"), så indsæt SELECTED bagefter
  - ellers udskriv bare OPTION som normalt
Avatar billede bearhugx Nybegynder
10. september 2003 - 02:57 #5
har du evt. et konkret eksempel, jeg kan hjælpe med ?
Avatar billede ronniw Nybegynder
10. september 2003 - 03:12 #6
wow - så rutineret er jeg nu ikke...

Jeg baner mig vej frem med ASP og redigerer og tilpasser en ASP-side jeg har fået fra en ven i england...

Mere konkret lyder min problemstilling således:

Jeg har 3 option value's:

Den første er VALG AF KONSERVATORIUM - går under name="kons". Her er 7 valgmuligheder, hvoraf den første er "" (blank) og som returneres som "ikke udfyldt" hvis denne vælges.

Næste er VALG af hovedinstrument - går under name="instrument". Her er forbandet mange instrumenter at vælge... ;)

Sidste er VALG af biinstrument - name="biinstrument". Lige så mange valg.

---------------------------------------

Hertil har jeg en database hvor brugernes indtastninger bliver gemt. Nu skal jeg trække oplysningerne tilbage til redigering (så brugeren selv kan redigere). Eksempelvis med navn, så sættes den til:

<tr>
  <td><font face="arial,helvetica" size="2">Fornavn :</font></td>
  <td align="right"><input type="text" name="fornavn" size="20" value="<%=rsProfile("fornavn")%>"></td>
</tr>

---------------------------------------

så har jeg jo så også option values - vi kan tage den mindste som eksempel. Den lyder pt således:

<tr>
  <td align="left"><font face="arial,helvetica" size="2">* Konservatorium :</font></td>
  <td align="right"><select name="kons" size="1">
    <option value=""></option>
    <option value="DKDM">Det Kgl. Musikkons</option>
    <option value="RMC">Rytmekons</option>
    <option value="DFM">Fynske Musikkons</option>
    <option value="DJM">Jyske Musikkons</option>
    <option value="VMK">Vestjysk Musikkons</option>
    <option value="DMK">Nordjysk Musikkons</option>
  </select>
</tr>

.........???
Avatar billede bearhugx Nybegynder
10. september 2003 - 03:39 #7
ASP er ikke min stærkeste side, men mon ikke dette kan hjælpe lidt på vej

<%
  Dim konsIDs;
  Dim konsNames;
  konsIDs = Array("", "DKDM", "RMC", "DFM", "DJM", "VMK", "DMK");
  konsNames = Array("Det Kgl. Musikkons", "Rytmekons", "Fynske Musikkons", "Jyske Musikkons", "Vestjysk Musikkons", "Nordjysk Musikkons");
%>


<select name="kons" size="1">
<%
  for k = 0 to 6
    if rsProfile("kons") == konsIDs(k) then
      sel = "selected"
    else
      sel = ""
%>
    <option value="<%=konsIDs(k)%>" <%=sel%> > <%=konsNames(k)%> </option>
<%   
  next k
%>

</select>
Avatar billede bearhugx Nybegynder
10. september 2003 - 03:45 #8
det skal dog siges, at det kan gøres noget nemmere, hvis der i databasen er en tabel med henholdsvis navnene på konservatorierne og deres forkortelse - så behøves der nemlig ikke at laves en array for dem..

Derudover skal jeg med det samme sige, at mine kundskaber inden for ASP er ret begrænsede (i forhold til f.eks. PHP og JSP :) så jeg garanterer ikke for at du _bare_ kan kopiere ovenstående kodestump ind på dine sider og det så bare kører (omend det ville være fedt :-)

Det var også derfor at det lige tog mig en halv time at svare - jeg vidste hvad jeg ville gøre, men skulle lige ud og læse noget ASP op for at kunne formulere det som ASP kode :-)))
Avatar billede ronniw Nybegynder
10. september 2003 - 04:13 #9
puha... jeg har tjekket det lidt ud (med trætte øjne)... Og det ser lidt hardcore ud... Jeg fandt vist nogle småfejl, men kan stadig ikke lige få det til at fungere...

Kræver det ikke mange ressorcer af serveren hvis den skal gennemløbe 3 af disse formler, hvor de 2 andre er voldsomt meget større??

Jeg venter sgu' lige til imorgen hvor jeg tænker lidt mere klart :-))

Men rigtig mange gange tak for dit arbejde ;)
sov godt.
Avatar billede socle Nybegynder
10. september 2003 - 08:46 #10
bearhugx har fat i det rigtige tror jeg. Udfra 10/09-2003 03:39:00 foreslår jeg:

<%
  konsIDs = Array("", "DKDM", "RMC", "DFM", "DJM", "VMK", "DMK")
  konsNames = Array("Det Kgl. Musikkons", "Rytmekons", "Fynske Musikkons", "Jyske Musikkons", "Vestjysk Musikkons", "Nordjysk Musikkons")

response.write("<select name='kons' size='1'>")
i=0 
while not i > Ubound(konsIDs)
    if rsProfile("kons") = konsIDs(i) then
      sel = " selected "
    else
      sel = ""
    end if
    response.write("<option value='" & konsIDs(i) & "'" & sel & ">" & konsNames(i) & "</option>" & VBCrLf)
    i=i+1
wend
response.write("</select>")
%>
Avatar billede p_johansen Nybegynder
10. september 2003 - 09:15 #11
<select name="kons" size="1">

    <option value="Det Kgl. Musikkons">Rytmekons</option>
    <option value="Fynske Musikkons">Fynske Musikkons</option>
    <option selected value="<%=rsProfile("kons")%>"><%=rsProfile("kons")%></option>
  </select>
Avatar billede bearhugx Nybegynder
10. september 2003 - 14:02 #12
øhhh p_johansen >> hvad skulle det lige hjælpe -- selv uden ASP kundskaber kan jeg da se, at det, du skriver, ikke fører nogen steder hen...
Avatar billede p_johansen Nybegynder
10. september 2003 - 15:03 #13
Det giver da ellers helt god mening!

ronniw skal have en drop-downmenu med alle de ønskede valgmuligheder + en forvalgt der hentes fra databasen "option selected"

Herefter kan en anden option (de samme som fra opret-siden) vælges.

... selv med bare en lillesmule ASP kundskab ;-)
Avatar billede bearhugx Nybegynder
10. september 2003 - 15:50 #14
hvis han bruger det, som du skriver der, så får han følgende resultat  (her antaget at den pågældende har valgt Fyns Musikkonservatorium):

<select name="kons" size="1">
  <option value=""></option>
  <option value="DKDM">Det Kgl. Musikkons</option>
  <option value="RMC">Rytmekons</option>
  <option value="DFM">Fynske Musikkons</option>
  <option value="DJM">Jyske Musikkons</option>
  <option value="VMK">Vestjysk Musikkons</option>
  <option value="DMK">Nordjysk Musikkons</option>
  <option value="DFM" selected>Fynske Musikkons</option>
</selected>

ERGO : Fyns Musikkonservatoium kommer til at optræde TO gange - en gang valgt og en gang IKKE valgt -- og det er jeg sikker på _ikke_ er hensigten..
Avatar billede ronniw Nybegynder
10. september 2003 - 18:02 #15
Hvor præcist skal det stå? Jeg har sat det hér:
-------------------------------------------------
Dim konsIDs, konsNames, i, sel

'...senere i asp-filen kommer så nedenstående...

<tr>
  <td align="left"><font face="arial,helvetica" size="2">* Konservatorium :</font></td>
  <td align="right"><select name="kons" size="1">
  <option value=""></option>
  <option value="DKDM">Det Kgl. Musikkons</option>
  <option value="RMC">Rytmekons</option>
  <option value="DFM">Fynske Musikkons</option>
  <option value="DJM">Jyske Musikkons</option>
  <option value="VMK">Vestjysk Musikkons</option>
  <option value="DMK">Nordjysk Musikkons</option>
<%
  konsIDs = Array("", "DKDM", "RMC", "DFM", "DJM", "VMK", "DMK")
  konsNames = Array("Det Kgl. Musikkons", "Rytmekons", "Fynske Musikkons", "Jyske Musikkons", "Vestjysk Musikkons", "Nordjysk

Musikkons")
'(til jeres orientering, så er denne linje er 104)
response.write("<select name='kons' size='1'>")
i=0 
while not i > Ubound(konsIDs)
    if rsProfile("kons") = konsIDs(i) then
      sel = " selected "
    else
      sel = ""
    end if
    response.write("<option value='" & konsIDs(i) & "'" & sel & ">" & konsNames(i) & "</option>" & VBCrLf)
    i=i+1
wend
response.write("</select>")
%>
</tr>

-----------------------------------------------------------
-er det rigtigt? Jeg får en fejl som hedder:

Indekset er uden for området: '6' på linje 113??
Avatar billede bearhugx Nybegynder
10. september 2003 - 18:28 #16
Ahhh .. Det er fordi jeg har glemt et "" dummy under navnene (konsNames)

Grunden til fejlen er, at der i konsNames så ikke er noget på plads 6 - og det går så galt, når man forsøger at læse værdien der

konsNames skal se sådan ud :
  konsNames = Array("", "Det Kgl. Musikkons", "Rytmekons", "Fynske Musikkons", "Jyske Musikkons", "Vestjysk Musikkons", "Nordjysk Musikkons")

evt. kan du istedet for en tom steng vælge f.eks.  "--vælg et konservatorium fra listen--"

Sorry - min fejl :-)
Avatar billede ronniw Nybegynder
10. september 2003 - 18:36 #17
nu loader den siden uden fejlmeddelelser, men nu lister den også konservatorierne efter dropdown-menuen?

Det er sikkert fordi jeg har placeret min <% .... %> det forkerte sted. Hvor skal den stå?
Avatar billede bearhugx Nybegynder
10. september 2003 - 18:37 #18
den her bid

----------------------
<select name="kons" size="1">
  <option value=""></option>
  <option value="DKDM">Det Kgl. Musikkons</option>
  <option value="RMC">Rytmekons</option>
  <option value="DFM">Fynske Musikkons</option>
  <option value="DJM">Jyske Musikkons</option>
  <option value="VMK">Vestjysk Musikkons</option>
  <option value="DMK">Nordjysk Musikkons</option>
--------------------------

skal du IKKE have med ... asp-scriptet laver den for dig...
Avatar billede ronniw Nybegynder
10. september 2003 - 18:42 #19
fuck - det virker!!!!!!!!!!! takker!!
Avatar billede ronniw Nybegynder
10. september 2003 - 18:42 #20
- og 100 points - værs'go!
Avatar billede bearhugx Nybegynder
10. september 2003 - 18:44 #21
glad to be of service.... og så lige tidsnok til at jeg kan se nyhederne :-)))
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