06. februar 2006 - 11:39Der 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...
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.
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>" %>
... 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.
<% 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>" %>
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 ;)
<% 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>" %>
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>" %>
<% 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>" %>
Synes godt om
Ny brugerNybegynder
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.