har en kodrad som ser ut så här: Varför hårdkoda en lösning? Det är bättre att göra den dynamisk. Då slipper du uppdatera ASP sidan om någon av adresserna skulle ändras.problem med "fnuttar"
<code>
<OPTION value="info@sandberg.fi"<%if request.querystring("select") = "info@sandberg.fi" then response.write "'selected'" elseif request.querystring ("select") = "" then response.write "selected"%><%end if%>>Yleinen</OPTION></code>
Någon som ser ngot direkt fel här?
Får expected end of statement...men vet inte riktigt hur jag ska ha det hela för att det ska funka.
Det är en dropdown, som skall vara selected om querystringen stämmer överens eller om den är tom.Sv: problem med "fnuttar"
Här är två generella funktioner för att skriva ut options:
Private Sub WriteOptions(rs, value, text)
Do Until rs.EOF
Response.Write "<OPTION value=""" & Server.HTMLEncode(value) & """>" & Server.HTMLEncode(text) & "</OPTION>" & vbCrLf
rs.MoveNext
Loop
End Sub
Private Sub WriteOptionsSelected(rs, value, text, selected)
If IsEmpty(selected) Then
WriteOptions rs, value, text
Else
Do Until rs.EOF
If value = selected Then
Response.Write "<OPTION selected value=""" & Server.HTMLEncode(value) & """>" & Server.HTMLEncode(text) & "</OPTION>" & vbCrLf
rs.MoveNext
WriteOptions rs, value, text
Else
Response.Write "<OPTION value=""" & Server.HTMLEncode(value) & """>" & Server.HTMLEncode(text) & "</OPTION>" & vbCrLf
rs.MoveNext
End If
Loop
End If
End Sub
Du kan senare använda dem så här:
<%
Public Sub WriteSelectEMail(Selected)
Dim rs 'As ADODB.Recordset
'Skapar/öppnar recordset
Set rs = CreateObject("ADODB.Recordset")
rs.Fields.Append "Name", adVarChar, 20
rs.Fields.Append "EMail", adVarChar, 30
rs.Open
'Lägger till värden
Dim Fields()
Fields = Array("Name", "EMail")
rs.AddNew Fields, Array("Yleinen", "info@sandberg.fi")
rs.AddNew Fields, Array("Uuri Sandberg", "uuri.sandberg@sandberg.fi")
rs.AddNew Fields, Array("Päivi Sandberg", "paivi.sandberg@sandberg.fi")
rs.AddNew Fields, Array("Webmaster", "webmaster@sandberg.fi")
rs.MoveFirst
'Går igenom recordsetet
WriteOptionsSelected rs, rs("EMail"), rs("Name"), Selected
End Sub
%>
Din sida...
HTML och sånt...
<td><SELECT ID="Select1" NAME="SelectEmail" class="text">
<% WriteSelectEMail Request.Form("SelectEmail") %>
</SELECT></td>
Din sida fortsätter...
HTML och sånt...
Jag använder i exemplet ett oanslutet recordset. Givetvis skall du ersätta det med ett riktigt recordset.
Personligen föredrar jag en struktur där jag separerar kod (Överst på sidan) och HTML (Efter koden). Samt generell funktioner (så som WriteOptions och WriteOptionsSelected) och specifika funktioner (Så som WriteSelectEMail).