17. august 2004 - 14:36Der er
17 kommentarer og 1 løsning
select-problem
Hej...
jeg skal lave en select-boks hvor den "selected" værdi skal være den fra access databasen.
Der er bare et problem... det virker ikke. Dataen i db'en er på formen "dato og klokkeslæt" med kort datoform.
Havde tænkt følgende: <select name="frakl"> <% if rs("frakl") = "00:00" then %> <option value="00:00" selected="selected">00:00</option> <% else %> <option value="00:00">00:00</option> <% end if %> </select>
men det virker ikke rigtigt... det er ikke fordi databasen ikke er åben for jeg får andre data ud.
for f=0 to 23 if f < 10 then tid1 = "0"&f&":00" tid2 = "0"&f&":30" else tid1 = f&":00" tid2 = f&":30" end if %> <option value="<%= tid1 %>" <% if rs("frakl") = tid1 then Response.write "selected" %>><%= tid1 %> <option value="<%= tid2 %>" <% if rs("frakl") = tid2 then Response.write "selected" %>><%= tid2 %> <% next %> </select>
hvis jeg sætte de to linie ind får jeg samme fejl som før, hvor det er den eneste linie i select-boksen...
men det som "næsten" virker på siden er følgende: <select name="frakl"> <% for f=0 to 23 if f < 10 then tid1 = "0"&f&":00" tid2 = "0"&f&":30" else tid1 = f&":00" tid2 = f&":30" end if %> <option value="<%= tid1 %>" <% if strfrakl = tid1 then Response.write "selected='selected'" %>><%= rs("frakl") &"="& tid1 %></option> <option value="<%= tid2 %>" <% if strfrakl = tid2 then Response.write "selected='selected'" %>><%= rs("frakl") &"="& tid2 %></option> <% next %> </select>
Problemet er at strfrakl og tid1/tid2 ikke er ens. Det kan være fordi de har forskellig datatype. Eller fordi der evt er et mellemrum i en af dem. Så i stedet for at skrive tid1 tid2 ud, som det der vises i dropdownboxen, skriver vi lige sammenligningen ud.
<option value="<%= tid1 %>" <% if strfrakl = tid1 then Response.write "selected='selected'" %>><%= strfrakl &"="& tid1 %></option> <option value="<%= tid2 %>" <% if strfrakl = tid2 then Response.write "selected='selected'" %>><%= strfrakl &"="& tid2 %></option>
På denne måde kan vi debugge os frem til problemet. Du skal bare fortælle mig igen hvad der så står i dropdownboxen. Hvis strfrakl er "08:00" skulle listen gerne se sådan ud:
<option value="<%= tid1 %>" <% if FormatDateTime(strfrakl, vbShortTime) = tid1 then Response.write "selected='selected'" end if%>><%= tid1 %></option>
<option value="<%= tid2 %>" <% if FormatDateTime(strfrakl, vbShortTime) = tid2 then Response.write "selected='selected'" end if %>><%= tid2 %></option>
kun kunne også lægge det i et array. det ser måske lidt pænere ud:
dim a(2) a(1) = "00:00" a(2) = "00:30" for i = 1 to 2 if rs("frakl") = a(i) then response.write "<option selected>" & a(i) & "</option>" else response.write "<option>" & i & "</option>" end if next
phineas_phreak >> Så synes jeg nu det er smatere at beregne alle klokkeslet. Ellers skal du til at lave et array med 48 tal. Og hvis den så senere skal ændres til at springe hver 15 min. bliver der endnu flere felter.
Men det er jo altid en smagssag, hvad man kan lide :o)
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.