webForumDet fria alternativet

Välja alternativ med kryssrutor

ASP

47 svar · 1 228 visningar · startad av Lorelie · sida 2 av 3

Frågan, av Lorelie

Har ett forumlär där man väljer tre olika alternativ med radioknappar, dvs man kan bara få ett av alternativen. Skulle vilja ha kryssrutor istället så man kan välja på ett, två eller tre alternativ (o kryssar man inte i något ska det helst komma upp en text om att man måste välja något..) Hur gör man detta? Dagens kod ser ut såhär: SQL = "select " & " from hast" & " where kon = '"& Sa

Läs frågan i sin helhet →
Medlem sedan juni 2005264 inlägg
#21

Det blir samma felmeddelande vad jag än gör! *frustrerad*

Medlem sedan juni 20019 519 inlägg
#22

ta bort all asp och bara kör en response.write("test") för att ens kolla att servern inte har några problem med ASPn.

Medlem sedan juni 2005264 inlägg
#23

Det funkade!, blev inga fel

Medlem sedan juni 20019 519 inlägg
#24

Då är det ju bara att börja felsöka, kommentera ut Recordset koden, kolla att ditt Connection objekt kan skapas utan några problem osv.

Medlem sedan juni 2005264 inlägg
#25

Men sånt kan inte jag =S

Medlem sedan juni 20019 519 inlägg
#26

Om det är "min" kod du kör: Kommentera ut från rs.Open SQL, MinCon till set RS = Nothing

Så kan du ju se att du kan ansluta dig till din databas korrekt, om det fungera, ta bort kommentaren för rs.Open, om det fungera gå vidare...

Medlem sedan juni 2005264 inlägg
#27

Provade nu (inte haft tid på jättelänge!) men det blir samma felmeddelande vad jag än gör!

Medlem sedan dec. 20025 483 inlägg
#28

Visa hela avancerad.asp så som den ser ut nu :)

Medlem sedan juni 2005264 inlägg
#29

Denna ligger ute på hemsidan nu.

<HTML>

<HEAD>
<META NAME="robots" CONTENT="noindex">
<META NAME="Author" CONTENT="© Lina Åkerberg &amp; Karin Halvarsson 2005">
<BASE TARGET="main">
<LINK HREF="sokmeny.css" REL="stylesheet" TYPE="text/css">
<TITLE>Aramennoc.se - Med connemaran i focus</TITLE>
</HEAD>

<%

Function SafeSQL(strText)
    SafeSQL = Replace(Replace(strText, "\", "\\"), "'", "''")
End Function

Set MinCon = Server.Createobject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "DRIVER={MySQL};SERVER=localhost;DATABASE=aramennoc_se;UID=***********;PWD=***********;"

if Request.Form("kon") = "" then
 response.write "Du måste välja kön (ett, två eller tre)"
else
 kon = ""
 for each k in Request.Form("kon")
  if kon <> "" then kon = kon & ","
  kon = kon & "'" & safesql(k) & "'"
 next

 SQL = _
 "select *" &_
 " from hast" &_
 " where kon in (" & kon & ")"

farg = SafeSQL(Request.Form("farg"))
ras = SafeSQL(Request.Form("ras"))
namn = SafeSQL(Request.Form("hast"))
stambok = lcase(SafeSQL(Request.Form("stambok")))
uppf = SafeSQL(Request.Form("uppf"))
inskickad_av = SafeSQL(Request.Form("inskickad_av"))

if farg <> "%" then
 SQL = SQL & " and farg like '" & farg & "%'"
end if

if ras <> "%" then
 SQL = SQL & " and ras like '" & ras & "%'"
end if

if namn <> "" then
 SQL = SQL & " and namn like '%" & namn & "%'"
end if

if stambok = "not null" then
 SQL = SQL & " and stamboks_nr is not null"
elseif stambok = "null" then
 SQL = SQL & " and stamboks_nr is null"
end if

if uppf <> "" then
 SQL = SQL & " and uppf like '%" & uppf & "%'"
end if

if inskickad_av <> "" then
 SQL = SQL & " and inskickad_av like '%" & inskickad_av & "%'"
end if

bild = SafeSQL(Request.Form("bild"))
if bild <> "" then
 SQL = SQL & " and bild_url is not null"
end if

diplom = SafeSQL(Request.Form("diplom"))
if diplom <> "" then
 SQL = SQL & " and diplom_ar is not null"
end if

elit = SafeSQL(Request.Form("elit"))
if elit <> "" then
 SQL = SQL & " and elit_ar is not null"
end if

SQL = SQL & " order by " & SafeSQL(Request.Form("ordning"))

rs.Open SQL, MinCon

end if

<SPAN CLASS="normal">
<a href="avancerad_sok.html" target="main">Tillbaka till avancerat sökformulär</A><BR><BR>
<STRONG>
Hittade hästar:
</STRONG>
<BR>
<BR>

<%
Do While Not rs.EOF
%>

<A HREF = hast.asp?hast_id=<%=rs("hast_id")%>><%=rs("namn")%></A>
<%
IF (rs("bild_url"))<>"" THEN %><img src="arrow.gif" alt="Bild finns" border=0>
<%
END IF %>
<BR>

<%
rs.MoveNext
Loop
%>
</SPAN>

<hr>

</BODY>
</HTML>
Medlem sedan dec. 20025 483 inlägg
#30

Som voigtann1 påpekade tidigare saknas %> efter "end if" i:

rs.Open SQL, MinCon

end if

<SPAN CLASS="normal">
Medlem sedan juni 2005264 inlägg
#31

Klantigt av mig! Nu är det fixat iaf, ingen skillnad =(

Medlem sedan dec. 20025 483 inlägg
#32

Om det är http://www.aramennoc.se/avancerad_sok.html så verkar fungera det för mig.

resultat.PNG
Medlem sedan juni 2005264 inlägg
#33

Ändrar mig!!
Kryssade i valack och tryckte på sök, en lista dök upp!! Funkar även med sto o hingst, samt alla eller två, men inte om man inte kryssar i något!

Medlem sedan dec. 20025 483 inlägg
#34

Om det är meningen att man måste välja kön kan du göra så här:

<HTML>

<HEAD>
<META NAME="robots" CONTENT="noindex">
<META NAME="Author" CONTENT="© Lina Åkerberg &amp; Karin Halvarsson 2005">
<BASE TARGET="main">
<LINK HREF="sokmeny.css" REL="stylesheet" TYPE="text/css">
<TITLE>Aramennoc.se - Med connemaran i focus</TITLE>
</HEAD>

<%

Function SafeSQL(strText)
    SafeSQL = Replace(Replace(strText, "\", "\\"), "'", "''")
End Function

Set MinCon = Server.Createobject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "DRIVER={MySQL};SERVER=localhost;DATABASE=aramennoc_se;UID=***********;PWD=***********;"

if Request.Form("kon") = "" then
 response.write "Du måste välja kön (ett, två eller tre)"
else
 kon = ""
 for each k in Request.Form("kon")
  if kon <> "" then kon = kon & ","
  kon = kon & "'" & safesql(k) & "'"
 next

 SQL = _
 "select *" &_
 " from hast" &_
 " where kon in (" & kon & ")"

farg = SafeSQL(Request.Form("farg"))
ras = SafeSQL(Request.Form("ras"))
namn = SafeSQL(Request.Form("hast"))
stambok = lcase(SafeSQL(Request.Form("stambok")))
uppf = SafeSQL(Request.Form("uppf"))
inskickad_av = SafeSQL(Request.Form("inskickad_av"))

if farg <> "%" then
 SQL = SQL & " and farg like '" & farg & "%'"
end if

if ras <> "%" then
 SQL = SQL & " and ras like '" & ras & "%'"
end if

if namn <> "" then
 SQL = SQL & " and namn like '%" & namn & "%'"
end if

if stambok = "not null" then
 SQL = SQL & " and stamboks_nr is not null"
elseif stambok = "null" then
 SQL = SQL & " and stamboks_nr is null"
end if

if uppf <> "" then
 SQL = SQL & " and uppf like '%" & uppf & "%'"
end if

if inskickad_av <> "" then
 SQL = SQL & " and inskickad_av like '%" & inskickad_av & "%'"
end if

bild = SafeSQL(Request.Form("bild"))
if bild <> "" then
 SQL = SQL & " and bild_url is not null"
end if

diplom = SafeSQL(Request.Form("diplom"))
if diplom <> "" then
 SQL = SQL & " and diplom_ar is not null"
end if

elit = SafeSQL(Request.Form("elit"))
if elit <> "" then
 SQL = SQL & " and elit_ar is not null"
end if

SQL = SQL & " order by " & SafeSQL(Request.Form("ordning"))

rs.Open SQL, MinCon

%>

<SPAN CLASS="normal">
<a href="avancerad_sok.html" target="main">Tillbaka till avancerat sökformulär</A><BR><BR>
<STRONG>
Hittade hästar:
</STRONG>
<BR>
<BR>

<%
Do While Not rs.EOF
%>

<A HREF = hast.asp?hast_id=<%=rs("hast_id")%>><%=rs("namn")%></A>
<%
IF (rs("bild_url"))<>"" THEN %><img src="arrow.gif" alt="Bild finns" border=0>
<%
END IF %>
<BR>

<%
rs.MoveNext
Loop
%>
</SPAN>

<hr>

<%
end if
%>

</BODY>
</HTML>
Medlem sedan juni 2005264 inlägg
#35

Funkade kanon =D
Tack så supermycket för hjälpen alla inblandade =D

En annan grej jag märkte nu, när man kryssar i att man vill ha dem i nummerordning kommer ALLA upp, verkar som att de är sorterade efter hast_id, hur gör man för att bara få upp dem som har ett stamboknummer? alltså sorteras efter stambok_nr och de som inte ha något sådant ska inte vara med

Medlem sedan dec. 20025 483 inlägg
#36

Om man väljer att sortera efter stamboks_nr så skall bara de som har ett sådant nummer visas i resultatet? Om det är NULL som sparas i det databasfältet kan det se ut så här (se till att jag stavat fältnamnet rätt nedan):

<HTML>

<HEAD>
<META NAME="robots" CONTENT="noindex">
<META NAME="Author" CONTENT="© Lina Åkerberg &amp; Karin Halvarsson 2005">
<BASE TARGET="main">
<LINK HREF="sokmeny.css" REL="stylesheet" TYPE="text/css">
<TITLE>Aramennoc.se - Med connemaran i focus</TITLE>
</HEAD>

<%

Function SafeSQL(strText)
    SafeSQL = Replace(Replace(strText, "\", "\\"), "'", "''")
End Function

Set MinCon = Server.Createobject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "DRIVER={MySQL};SERVER=localhost;DATABASE=aramennoc_se;UID=***********;PWD=***********;"

if Request.Form("kon") = "" then
 response.write "Du måste välja kön (ett, två eller tre)"
else
 kon = ""
 for each k in Request.Form("kon")
  if kon <> "" then kon = kon & ","
  kon = kon & "'" & safesql(k) & "'"
 next

 SQL = _
 "select *" &_
 " from hast" &_
 " where kon in (" & kon & ")"

farg = SafeSQL(Request.Form("farg"))
ras = SafeSQL(Request.Form("ras"))
namn = SafeSQL(Request.Form("hast"))
stambok = lcase(SafeSQL(Request.Form("stambok")))
uppf = SafeSQL(Request.Form("uppf"))
inskickad_av = SafeSQL(Request.Form("inskickad_av"))
ordning = SafeSQL(Request.Form("ordning"))

if farg <> "%" then
 SQL = SQL & " and farg like '" & farg & "%'"
end if

if ras <> "%" then
 SQL = SQL & " and ras like '" & ras & "%'"
end if

if namn <> "" then
 SQL = SQL & " and namn like '%" & namn & "%'"
end if

if stambok = "not null" then
 SQL = SQL & " and stamboks_nr is not null"
elseif stambok = "null" then
 SQL = SQL & " and stamboks_nr is null"
end if

if uppf <> "" then
 SQL = SQL & " and uppf like '%" & uppf & "%'"
end if

if inskickad_av <> "" then
 SQL = SQL & " and inskickad_av like '%" & inskickad_av & "%'"
end if

bild = SafeSQL(Request.Form("bild"))
if bild <> "" then
 SQL = SQL & " and bild_url is not null"
end if

diplom = SafeSQL(Request.Form("diplom"))
if diplom <> "" then
 SQL = SQL & " and diplom_ar is not null"
end if

elit = SafeSQL(Request.Form("elit"))
if elit <> "" then
 SQL = SQL & " and elit_ar is not null"
end if

if ordning = "stamboks_nr" then
 SQL = SQL & " and stambok_nr is not null"
end if

SQL = SQL & " order by " & ordning

rs.Open SQL, MinCon

%>

<SPAN CLASS="normal">
<a href="avancerad_sok.html" target="main">Tillbaka till avancerat sökformulär</A><BR><BR>
<STRONG>
Hittade hästar:
</STRONG>
<BR>
<BR>

<%
Do While Not rs.EOF
%>

<A HREF = hast.asp?hast_id=<%=rs("hast_id")%>><%=rs("namn")%></A>
<%
IF (rs("bild_url"))<>"" THEN %><img src="arrow.gif" alt="Bild finns" border=0>
<%
END IF %>
<BR>

<%
rs.MoveNext
Loop
%>
</SPAN>

<hr>

<%
end if
%>

</BODY>
</HTML>
Medlem sedan juni 2005264 inlägg
#37

Fungerade inte, alla kommer upp ändå. Om man inte kryssar i att man bara vill ha stambokförda hästar, för då kommer bara de upp, men jag vill att det ska ske automagiskt sas

Medlem sedan juni 2005264 inlägg
#38

Nu drog jag förhastade slutsatser igen :$ Gick mycket bättre när jag skrev rätt... det fungerade visst (missade ett s bara...)

Medlem sedan juni 2005264 inlägg
#39

Ännu en fråga... :$

Saknar en sökfunktion för född, kopierade namn rakt av, för det ska fungera likadant är det tänkt, men det fungerar inte? Blir inget fel eller så, men alla hästar kommer upp även om man fyller i årtal (många har helt födelsedatum, typ 2009-02-10 eller 2009 (Februari) om det spelar någon roll) I databasen är det "Varchar", precis som alla andra rutor.

Medlem sedan dec. 20025 483 inlägg
#40

Då måste vi se koden igen :)

262 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)