En dropdown har namnet sok
<select name="sok">
men i din select-sats så använder du
WHERE land LIKE '%" & Request.Form("land") & "%'
Vad är problemet egentligen?
24 svar · 499 visningar · startad av cupy
Hej !
Jag försöker bygga en search script med två dropdown menu
men den vill inte funka så tänkte fråga er om ni kan hjälpa till.
Så ser den ut nu:
----------------------------------------------------------------------
<FORM name="land" action ="cq.asp method="post">
<select name="sok">
<font face="verdana, Helvetica" size=2>
<option value="non">-VÄLJ LAND-</option>
<option value="sverige">sverige</option>
<option value="danmark">danmark</option>
<option value="finnland">finnland</option>
o.s.v....
</select>
<select name=kategori value="kategori">
<option value="none" selected> Välj
kategori
<option value="sport">sport</option>
<option value="fysik">fysik</option>
o.s.v....
</select><br>
<input type="submit" value="Sök">
</form>
<% set objConn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM tabell WHERE land LIKE '%" & Request.Form("land") & "%' OR AND kategori LIKE '%" & Request.Form("kategori") & "%' Order by id desc"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("databas.mdb")
objConn.open strDSN
rs.Open strSQL, objConn, 3, 3 %>
<%
If Rs.EOF Then
Response.Write"Hittade inga uppgifter"
Else
DO UNTIL Rs.EOF
%>
<a href="visa3.asp?id=<%=TRIM(Server.HTMLEncode(Rs("ID"))) %>"><% =TRIM(Server.HTMLEncode(Rs("rubrik")))%></a>
<%=Rs("kategori")%>
<% =TRIM(Server.HTMLEncode(Rs("land")))%>
<% rs.MoveNext
Loop
End if
Rs.CLOSE
Conn.CLOSE
Set Rs = nothing
Set Conn = nothing
%>
En dropdown har namnet sok
<select name="sok">
men i din select-sats så använder du
WHERE land LIKE '%" & Request.Form("land") & "%'
Vad är problemet egentligen?
Tack för det Lars men det inte det som är fel
Jag experimenterade och glömde skriva om den.
Felet är att händer inget när jag väljer ett land och/eller ett kategori Inget felmeddelande heller.
strSQL = "SELECT * FROM tabell WHERE land LIKE '%" & Request.Form("land") & "%' [b]OR AND[/B] " & _
"kategori LIKE '%" & Request.Form("kategori") & "%' Order by id desc"
Det feta ser konstigt ut.
Ett sätt är att skriva ut den sql-sats som du får och testa den i Access.
strSQL = "SELECT * FROM tabell WHERE land LIKE '%" & Request.Form("land") & "%' or " & _
"kategori LIKE '%" & Request.Form("kategori") & "%' Order by id desc"
response.write strSQL
response.end
nej! det funkar inte!
Den skriver ut bara hela select satsen.
så ser den ut . Den funkar fortfarande inte och jag får inget felmeddelande heller.
<%
set objConn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM tabell WHERE land LIKE '%" & Request.Form("land") & "%' or " & _
"kategori LIKE '%" & Request.Form("kategori") & "%' Order by id desc"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("databas.mdb")
objConn.open strDSN
rs.Open strSQL, objConn, 3, 3 %>
<%
If Rs.EOF Then
Response.Write"Det finns inga uppgifter"
Else
DO UNTIL Rs.EOF
%>
LarsG menade nog hur din utskrift av SQL-frågan ser ut :)
menar ni den:
SELECT * FROM files WHERE kommun LIKE '%%' or kategori LIKE '%%' Order by id desc
Just! Då ser det ut som att inget värde har hamnat mellan %procent% tecknena. :(
Ändra detta!
<FORM name="land" action ="cq.asp method="post">
till
<FORM name="land" action ="cq.asp" method="post">
:)
nu listar ut allt, men inte det som jag vill
Men skall det inte stå:
set objConn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM tabell WHERE land LIKE '%" & Request.Form("land") & "%' [b]AND[/b] " & _
"kategori LIKE '%" & Request.Form("kategori") & "%' Order by id desc"
jo! fast nu är den prioriterar kategoriet mer än landet
alltså om jag väljer ett land och ett kategori då listas ut alla meddlemmar i den kategori men tyverr den listar ut andra länder också.
Jag vet inte om jag är dum, men går det inte bara att skriva:
Kategori = Request("kategori")
Land = Request("land")
set objConn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM tabell WHERE land ='"& Land &"' AND
kategori ='"& Kategori &"' Order by Land, kategori"
LIKE '% Behöver du väl bara om du har ett textfält där man kan skriva ett sökord eller tex "Danm" för Danmark osv. Det verkar ju som att du har bestämda värden i selectboxen ju.
MVH Jesper
Det blir samma resultat tyverr
Lade du till: Order by Land, kategori ?
Nu funkar det ! Jag glömde ge ett namn i select <select name="land">
Så nu funkar fast nu jag är tvungen att välja ett land Jag kan inte välja ett kategori bara