Avatar billede darth-domino Nybegynder
06. februar 2006 - 11:39 Der er 15 kommentarer og
1 løsning

Form valg vises 2 gange?

Jeg har lavet en Form, der henter nogen info fra en Access database.... eks valget "JA" og "NEJ"... hvis der så står "JA" i database, så kommer det til at stå 2 gange...

<select name="GuestBook">
<option>JA</option>
<option>NEJ</option>
<option selected><% response.write rs("GuestBook")%></option>
</select>

Hvordan klarer jeg den?
Avatar billede keysersoze Ekspert
06. februar 2006 - 11:46 #1
<select name="GuestBook">
<option<%if rs("GuestBook") = "JA" Then%> selected="selected"<%End If%>>JA</option>
<option<%if rs("GuestBook") = "NEJ" Then%> selected="selected"<%End If%>>>NEJ</option>
</select>
Avatar billede darth-domino Nybegynder
06. februar 2006 - 11:52 #2
Jamen det dur ikke... for jeg har osse med skrift typer osv...

                <select name="LinksFonts">
                  <option selected><% response.write Session("LinksFonts")%></option>
                  <option>Arial</option>
                  <option>Times New Roman</option>
                  <option>Courier New</option>
                  <option>Georgia</option>
                  <option>Verdana</option>
                  <option>Geneva</option>
                </select>
Avatar billede darth-domino Nybegynder
06. februar 2006 - 11:52 #3
Det skal være at den kun nævner den 1 gang ligemeget hvad!
Avatar billede keysersoze Ekspert
06. februar 2006 - 12:04 #4
du kan ikke undgå at lave en eller anden form for if-sætning der enten fjerner en option eller som i mit tilfælde sætter en ekstra attribut - og jeg vil mene det eksempel jeg kommer med et det letteste så du må lave samme opbygning på skrifttype...

alternativet er at du begynder at arbejde i .net eller måske endda bruge javascript at vælge en selected med - at begynde på .net er nok overkill da det vil koste meget tid og javascriptløsningen er dum at begynde på i forhold til mit eksempel.
Avatar billede tjaz Nybegynder
06. februar 2006 - 12:09 #5
Du opretter en tabel med fonts, en tabel med valgmuligheder og laver en select der selv finder ud af om der står det samme i gb indlægget som der måtte stå i værdien fra en tabel med fx fonts (på den måde skriver den også kun de fonts du opretter og derfor ikke den samme 2 gange):

<%
rs = conn.execute("SELECT * FROM tabel-med-fx-fonts ORDER BY vaerdi")
gb = conn.execute("SELECT * FROM gb-indlaeg ORDER BY id")

response.write "<select name=""guestbook-font"">"
do until rs.eof
if rs("vaerdi") = gb("vaerdi") then
selected = " SELECTED"
end if
response.write "<option value="""& rs("vaerdi") &""""& selected &">"& rs("vaerdi") &"</option>"
rs.movenext
loop
response.write "</select>"
%>
Avatar billede keysersoze Ekspert
06. februar 2006 - 12:18 #6
... som i bund og grund er præcis det samme jeg foreslår bare med en db i stedet for hardkodede værdier. Der er bare ingen grund til at blande en database ind over såfremt det kan undgås hvis man kigger performance på det i forhold til hardcode - om det er nødvendigt her er dog svært at vurdere.
Avatar billede tjaz Nybegynder
06. februar 2006 - 12:36 #7
han har en database i forvejen så hvorfor ikke udnytte den ?
Avatar billede tjaz Nybegynder
06. februar 2006 - 12:38 #8
du kan også vælge at lave den som array i stedet for hvor du blot splitter værdierne så slipper du for de ekstra tabeller
Avatar billede tjaz Nybegynder
06. februar 2006 - 12:41 #9
<%
selectvaerdier = "Arial,Times New Roman,Verdana"
arrVaerdier = split(selectvaerdier, ",")

gb = conn.execute("SELECT * FROM gb-indlaeg ORDER BY id")

response.write "<select name=""guestbook-font"">"
For t = LBound(arrVaerdier) to UBound(arrVaerdier)
if arrVaerdier(t) = gb("vaerdi") then
selected = " SELECTED"
end if
response.write "<option value="""& arrVaerdier(t) &""""& selected &">"& arrVaerdier(t) &"</option>"
Next
response.write "</select>"
%>
Avatar billede keysersoze Ekspert
06. februar 2006 - 12:45 #10
fordi det er betydelig tungere at blande en database ind over end bare at hardcode det - der er netop ingen grund til at fylde databasen med irrelevante ting. Kun hvis man med fordel skal/kan bruge indholdet senere hen vil jeg være enig med dig :)

Array-idéen er jeg mere med på - omend den i bund og grund er det samme som mit ;)
Avatar billede tjaz Nybegynder
06. februar 2006 - 12:47 #11
ja, den er bare nemmere at udvide =) end den du har skrevet hvor du er nødt til at lave en helt ny linie hver gang :P
Avatar billede tjaz Nybegynder
06. februar 2006 - 12:47 #12
nå, må hellere smide et svar =)
Avatar billede darth-domino Nybegynder
06. februar 2006 - 12:55 #13
BLANK!

Hvilken mener I jeg skal bruge?
Avatar billede tjaz Nybegynder
06. februar 2006 - 12:58 #14
<%
selectvaerdier = "Arial,Times New Roman,Verdana"
arrVaerdier = split(selectvaerdier, ",")

gb = conn.execute("SELECT * FROM gb-indlaeg ORDER BY id")

response.write "<select name=""guestbook-font"">"
For t = LBound(arrVaerdier) to UBound(arrVaerdier)
if arrVaerdier(t) = gb("vaerdi") then
selected = " SELECTED"
end if
response.write "<option value="""& arrVaerdier(t) &""""& selected &">"& arrVaerdier(t) &"</option>"
Next
response.write "</select>"
%>
Avatar billede darth-domino Nybegynder
06. februar 2006 - 13:09 #15
Får kun valget "JA" og ikke nej...

Her er min kode:
<%
    selectvaerdier = rs("Underlining")
    arrVaerdier = split(selectvaerdier, ",")
    gb = conn.execute("SELECT * FROM EntenEller")
               
    response.write "<select name=""UnderlineLinks"">"
    For t = LBound(arrVaerdier) to UBound(arrVaerdier)
        if arrVaerdier(t) = gb("felt") then
            selected = " SELECTED"
        end if
            response.write "<option value="""& arrVaerdier(t) &""""& selected &">"& arrVaerdier(t) &"</option>"
    Next
    response.write "</select>"
%>
Avatar billede keysersoze Ekspert
06. februar 2006 - 13:31 #16
<%
ee = conn.execute("SELECT * FROM enteneller")
response.write "<select name=""GuestBook"">"
Do While Not ee.eof
  VAL = ""
  If ee("felt") = rs("GuestBook") Then
    VAL = "selected"
  End If
  Response.Write "<option value=""" & ee("felt") & """ " & VAL & ">" & ee("felt") & "<option>
ee.movenext
loop
response.write "</select>"
%>
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
Kurser inden for grundlæggende programmering

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