webForumDet fria alternativet

Hur gör man för att hämta vad besökaren valt i en dropdown?

ASP

7 svar · 286 visningar · startad av trexter.com

Medlem sedan apr. 20021 203 inlägg
Frågan#1

Exakt - HUR?
Jag använder följande formulär:
<form ACTION="searchdb.asp?wanna=yes" method="post" name=search>
<select name="yesorno">
<option value="Sent">Sent</option>
<option value="Nada" selected>Nada</option>
<option value="Delivered">Delivered</option>
</select>
<br>
<INPUT TYPE="submit" VALUE="Sök"><input type="reset" value="Sudda">
</form>

--------------

Reqeust.Form("vad då?")

Medlem sedan mars 20025 907 inlägg
#2

Request.Form("yesorno")

Eller är det en kuggfråga?!

Medlem sedan apr. 20021 203 inlägg
#3

Hmm, det var också vad jag trodde... varför får jag då fel på följande kod?

<%
Way = Request.QueryString("Way")
If Way = "search" Then
%>
<form ACTION="searchdb.asp?wanna=yes" method="post" name=search>
<INPUT TYPE="RADIO" NAME="Type" VALUE="Name">Namn
<br>
<INPUT TYPE="RADIO" NAME="Type" VALUE="email">Email
<br>
<INPUT TYPE="RADIO" NAME="Type" VALUE="address">Adress
<br>
<INPUT TYPE="RADIO" NAME="Type" VALUE="CityAndZip">Postnummer
<br>
<INPUT TYPE="TEXT" VALUE="" NAME="searchwindow" SIZE="20">
<br>
<select name="yesorno">
<option value="Sent">Sent</option>
<option value="Nada" selected>Nada</option>
<option value="Delivered">Delivered</option>
</select>
<br>
<INPUT TYPE="submit" VALUE="Sök">
</form>
<%
End If
%>

Och hemsidan som tar emot:

<% Response.Buffer = TRUE %>
<html>
<!-- #include file="adovbs.inc" -->
<%
	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\trexter\a\a.mdb;pwd=a" 
		If Request.Form("yesorno") <> "Nada" Then
			Set RecSet2 = Server.CreateObject("ADODB.Recordset")
   			Find2 = "SELECT * FROM orders WHERE " & Request.Form("yesorno") & " = """

   			RecSet2.Open Find2, Connect, adOpenStatic, adLockOptimistic
		Else
	
	Set RecSet = Server.CreateObject("ADODB.Recordset")
   Find = "SELECT * FROM orders WHERE " & Request.Form("Type") & " LIKE '%" & Request.Form("searchwindow") & "%'"

   RecSet.Open Find, Connect, adOpenStatic, adLockOptimistic
		End If
Do Until RecSet.EOF
%> 

<%=RecSet("Name")%> - <%=RecSet("email")%> - <%=RecSet("address")%><br>
<%=RecSet("CityAndZip")%> - <%=RecSet("Delivered")%> - <%=RecSet("orderTime")%><br>
<%=RecSet("Notes")%> - <%=RecSet("delType")%> - <%=RecSet("zip")%><br>
<%=RecSet("Delivered")%> - <%=RecSet("Sent")%> - <%=RecSet("phone")%><br>
<%=RecSet("total")%>
<br><br>
<hr>
<br><br>
<%
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
%>
</HTML>

Och felmeddelandet:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

[Microsoft][ODBC Microsoft Access Driver] Syntax error in string in query expression 'Sent = "'. 

/a/searchdb.asp, line 11

:)

Medlem sedan dec. 200012 464 inlägg
#4
Find2 = "SELECT * FROM orders WHERE " & Request.Form("yesorno") & " = ''"

Vad vill du söka efter egentligen? (Om det är null eller en tom sträng?)

Varför döper du ditt recordsett till recset2? Du använder ju recset sedan.

Medlem sedan apr. 20021 203 inlägg
#5

LarsG skrev:

Find2 = "SELECT * FROM orders WHERE " & Request.Form("yesorno") & " = ''"

Vad vill du söka efter egentligen? (Om det är null eller en tom sträng?)

Varför döper du ditt recordsett till recset2? Du använder ju recset sedan.

Jag vill visa de poster där fälten i tabellen är helt tomma. Borde jag använda null istället eller?

Tack för det där med RecSet:en, missade det!

:)

Medlem sedan dec. 200012 464 inlägg
#6

Det är skillnad på en tom sträng och null, så det beror på vad du har lagrat i kolumnen.

-- en tom sträng
insert into t(c1,c2,c3) values('a',4711,'')

-- null
insert into t(c1,c2,c3) values('a',4711,null)

För att söka efter poster som är null så använder man sig av

select * from t where c3 is null
Medlem sedan apr. 20021 203 inlägg
#7

Jag vill t.ex. visa namn + adress + telefonnummer från alla de rader i tabellen där fältet delivered är tomt!

(Och förresten, koden du föreslog fungerade bara det att inga poster visas.)

Förstår du hur jag menar...

:)

Medlem sedan dec. 200012 464 inlägg
#8

I så fall låter det som om du skulle använda

Find2 = "SELECT * FROM orders WHERE " & Request.Form("yesorno") & " is null "

Det blir också null om man utelämnar en kolumn när man gör insert.

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)