Jeg forespurgte i en client-side gruppe omkring dette problem, men fik i
mellemtiden en god idé til, hvordan det kunne løses server-side.
Jeg har længe nydt godt af denne gruppes råd og vejledning, så nu er det
vist på tide, at jeg giver noget tilbage, som flere vil kunne nyde godt
af i lyset af de mange spørgsmål, der stilles rundt omkring på nettet
vedr. denne specifikke problemstilling.
Problemet vedrører load af en drop-down boks, som skal have en given
værdi selected. Jeg bruger selv nedenstående script til "indstilling" af
3 drop-down bokse (dag, måned og år) udfra en DB-udtrukket fødselsdato.
Jeg har valgt at gengive måned her, da den involverer et array, da value
og option ikke er ens, som det er gældende for dag og år.
Bemærk, at scriptet også tager højde for, at koden ikke udskrives i én
lang linje, men pænt ordnet, som man ville skrive den manuelt.
Problemet kan sikkert løses mere elegant end mine begrænsede evner gør
muligt. Men det VIRKER!! :)
<select name="Maaned">
<%
Dim MaanedArray(11)
Dim n
MaanedArray(0) = "Januar"
MaanedArray(1) = "Februar"
MaanedArray(2) = "Marts"
MaanedArray(3) = "April"
MaanedArray(4) = "Maj"
MaanedArray(5) = "Juni"
MaanedArray(6) = "Juli"
MaanedArray(7) = "August"
MaanedArray(8) = "September"
MaanedArray(9) = "Oktober"
MaanedArray(10) = "November"
MaanedArray(11) = "December"
If IsNull(objRec("Foedselsdato")) Then
Response.Write "<option value=""Måned"" selected>Måned</option>" &
vbCrLf
For n = LBound(MaanedArray) To UBound(MaanedArray)
If n = UBound(MaanedArray) Then
Response.Write "<option value=""" & n + 1 & """>" & MaanedArray(n) &
"</option>"
Else
Response.Write "<option value=""" & n + 1 & """>" & MaanedArray(n) &
"</option>" & vbCrLf
End If
Next
Else
Response.Write "<option value=""Måned"">Måned</option>" & vbCrLf
For n = LBound(MaanedArray) To UBound(MaanedArray)
If n = UBound(MaanedArray) Then
If n + 1 = DatePart("m",(objRec("Foedselsdato")),2,3) Then
Response.Write "<option value=""" & n + 1 & """ selected>" &
MaanedArray(n) & "</option>"
Else
Response.Write "<option value=""" & n + 1 & """>" & MaanedArray(n) &
"</option>"
End If
Else
If n + 1 = DatePart("m",(objRec("Foedselsdato")),2,3) Then
Response.Write "<option value=""" & n + 1 & """ selected>" &
MaanedArray(n) & "</option>" & vbCrLf
Else
Response.Write "<option value=""" & n + 1 & """>" & MaanedArray(n) &
"</option>" & vbCrLf
End If
End If
Next
End If
Set MaanedArray(11) = Nothing
Set n = Nothing
%>
</select>
Anders Lau
--
Anders Lau Mandsholm
Aabyhoej, Denmark
www.mandsholm.dk
lau@mandsholm.ingenspamtak.dk