Håller på att göra en sida där man skall kunna redigera sina uppgifter som man tidigare lagt in. Nu vill jag att denna rullningslist skall hämta det värde som står i databasen, och sätta det som "selected value". Den man valde när man registrerade sig skall alltså vara vald. Tja, enklast möjligast är väl så här: Hämtas värdena från ett recordset eller är de statiska? Jag brukar använda mig av javascript: Spara index? Det tycker jag är fel. Vad händer om ett nytt val tillkommer mellan de tidigare? Då kommer data bli korrupt. Att lagra index är fel.Hur får man ett "SELECTED VALUE" att välja det som står i databasen?
<code>
<select name="katt">
<option value="klas">Choklad
<option value="ledn">Vanilj
<option value="ovri">Jordgubb
</select>
</code>
Och så här hämtar jag infon från databasen.
<code>
<% =RecSet("Category") %>
</code>
Finns det nått enkelt sätt att lösa detta?Sv: Hur får man ett "SELECTED VALUE" att välja det som står i databasen?
<code>
<select name="katt">
<option value="klas" <% If (RecSet("Category") = "klas") Then Response.Write " selected " %>>Choklad
<option value="ledn" <% If (RecSet("Category") = "ledn") Then Response.Write " selected " %>>Vanilj
<option value="ovri" <% If (RecSet("Category") = "ovri") Then Response.Write " selected " %>>Jordgubb
</select>
</code>
Du kan ev behöva trimma (trim) bort tomrum i strängen från databasen.
Då skriver du så här istället:
<code>
IF (trim(RecSet("Category")) = "klas") Then Response.Write " selected "
</code>
Lycka till!
MVH
FredrikSv: Hur får man ett "SELECTED VALUE" att välja det som står i databasen?
<code>
<select name="katt">
<%
Dim Value
Dim Values
Values = Array(Array("klas", "Choklad"), Array("ledn", "Vanilj"), Array("ovri", "Jordgubb"))
For Each Value In Values
If Value(0) = RecSet("Category") Then
Response.Write " <option value=""" & Server.HTMLEncode(Value(0)) & """ selected>" & Server.HTMLEncode(Value(0)) & "</option>"
Else
Response.Write " <option value=""" & Server.HTMLEncode(Value(0)) & """>" & Server.HTMLEncode(Value(0)) & "</option>"
End If
Next
%>
</select>
</code>
Eller från en databas med recordset:
<%
Sub WriteOptions(Recordset, ValueField, TextField, Value)
Do Until Recordset.EOF
If ValueField = Value Then
Response.Write " <option value=""" & Server.HTMLEncode(ValueField) & """ selected>" & Server.HTMLEncode(TextField) & "</option>"
Else
Response.Write " <option value=""" & Server.HTMLEncode(ValueField) & """>" & Server.HTMLEncode(TextField) & "</option>"
End If
Recordset.MoveNext
Loop
End Sub
%>
<select name="katt">
<%
Dim rsSelect
Set rsSelect = conn.Execute("SELECT CategoryId, CategoryName FROM Categories ORDER BY CategoryName")
WriteOptions rsSelect, rsSelect("CategoryId"), rsSelect("CategoryName"), RecSet("Category")
rsSelect.Close
%>
</select>
Sv: Hur får man ett "SELECTED VALUE" att välja det som står i databasen?
<code>
<select name="katt">
<option value="Adam">Adam
<option value="Bertil">Bertil
<option value="Ceasar">Ceasar
</select>
<script language="javascript">
var u = '<%=RecSet("Category")%>';
while (document.forms.FORM.katt.value!=u)
{
document.forms.FORM.katt.selectedIndex ++;
}
</script>
</code>
Det är lättare om du bara sätter själva selectedIndex att sparas i databasen, då kan du sätta
<code>
<script language="javascript">
document.forms.FORM.katt.selectedIndex = <%=RecSet("Category")%>;
</script>
Mycket enkelt.Sv:Hur får man ett "SELECTED VALUE" att välja det som står i databasen?