19. oktober 2001 - 11:06Der er
16 kommentarer og 1 løsning
Checkbox og db-søgning
I min søgeformular indgår der udover en række tekst-søgefelter også en checkbox (name=billede). Ideen med denne checkbox er, at hvis den er afkrydset skal den udover de poster, som passer med kriterierne der er indtastet i tekst-felterne også udvælge alle posterne med en værdi i feltet (1thumb) fra en access db.
Koden ser således ud: strSQL = \"SELECT * FROM Torvegade WHERE\" strSQL = strSQL & \" ((beskrivelse LIKE \'%\" & strbeskrivhistorie & \"%\')\" strSQL = strSQL & \" OR (bygningshistorie LIKE \'%\" & strbeskrivhistorie & \"%\'))\"
If Len(strgadevej) > 0 Then strSQL = strSQL & \" AND (gadevej LIKE \'%\" & strgadevej & \"%\')\" End if
\' kode for checkbox If Request.Form(\"billede\") > 0 then strSQL = strSQL & \"(1thumb LIKE \'%\" strbillede \"%\')\" End if
Det sidste sætning ser forkert ud Hvad gør jeg galt???
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Nåhh.. det er da fordi du så skal navngive billede checkboxen fx name=\"checkbox<%=rs(\"billedeid\")%>\"
Så skal du når du vil indsætte/eller opdatere, køre den samme sql sætning og køre alle poster igennem igen, og tjecke på om Request.Form(\"checkbox\"&rs(\"billedeid\")) = \"true\"
Desværre kan du endnu ikke se et eksempel på nettet. Men jeg kan sende hele koden.
Ideen med Checkbox-feltet er, at når det er afkrydset skal den fremfinde alle poster i db´en, hvor der er tilknyttet billeder. Hvorfor skal default-værdien i feltet 1thumb sættes til \"\" er det ikke nok, at feltet blot er tomt de steder hvor der ikke er knyttet billeder?
koden:
<% Dim Strgadevej Dim Strgadevejnummer Dim Strejerlav Dim Strmatrikelnummer Dim Strhusnavn Dim Strbeskrivhistorie Dim Strforhus Dim Strbaghus Dim Strbygherre Dim Strarkitekt Dim Strtomrermester Dim strmurermester dim strbillede dim strtom
rs.Open strSQL, strDSN, 1 If Not (rs.BOF Or rs.EOF) Then rs.PageSize = 5 intRecCount = rs.PageSize intPageCount = rs.PageCount intPage = Request.querystring(\"page\") If isNumeric(intPage) = False Or intPage < 1 Then count = 1 intPage = 1 else count = ((intPage - 1) * rs.PageSize) + 1 End If rs.AbsolutePage = intPage
AntalP = rs.RecordCount
If AntalP = 1 then Response.write \"<p><b><font color=#000000 font face=Trebuchet MS size=2>Din søgning resulterede i \" & AntalP & \" bygninger<br></b></p>\" End if If AntalP > 1 then Response.write \"<p><b><font color=#000000 font face=Trebuchet MS size=2>Din søgning resulterede i \" & AntalP & \" bygninger<br></b></p>\" End if If AntalP > 5 then Response.Write \"<p><b><font color=#000000 font face=Trebuchet MS size=2>Side \" & intPage & \" af \" & intPageCount & \"</b></p>\" End if Do While Not rs.EOF And intRecCount > 0
Response.Write \"<b><font face=\'Trebuchet MS\' size=\'3\' color=\'#000000\'>\" & count & \". </font></b><br>\" If len(rs(\"husnavn\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Husnavn: </b>\" & rs(\"husnavn\") & \"</font> \" end if Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Gade/nr.: </b>\" & rs(\"gadevej\") & \" \" & rs(\"gadevejnummer\") &\"</font><br>\"
Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Ejerlav: </b>\" & rs(\"ejerlav\") & \"</font> \"
Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Matrikelnummer: </b>\" & rs(\"matrikelnummer\") & \"</font><br>\"
Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Bygningsbeskrivelse: </b><br>\" & rs(\"beskrivelse\") & \"</font><br>\"
If len(rs(\"bygningshistorie\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Bygningshistorie: </b><br>\" & rs(\"bygningshistorie\") & \"</font><br>\" End if
If len(rs(\"bemaerkninger\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Bemærkninger: </b><br>\" & rs(\"bemaerkninger\") & \"</font></b><br>\" End if
Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Forhus opført: </b>\" & rs(\"forhusopfort\") & \"</font></b> \"
If len(rs(\"baghusopfort\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Baghus opført: </b>\" & rs(\"baghusopfort\") & \"</font></b><br>\" Else
response.write \"<br>\" end if If len(rs(\"bygherre\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Bygherre: </b>\" & rs(\"bygherre\") & \"</b><br>\" End if
If len(rs(\"arkitekt\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Arkitekt: </b>\" & rs(\"arkitekt\") & \"</b><br>\" End if
If len(rs(\"tomrermester\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Tømrermester: </b>\" & rs(\"tomrermester\") & \"</b> \" End if
If len(rs(\"murermester\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Murermester: </b>\" & rs(\"murermester\") & \"</b><br>\" End if
If len(rs(\"anvendelse1\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Anvendelse 1: </b>\" & rs(\"anvendelse1\") & \"</b><br>\"
End if If len(rs(\"anvendelse2\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Anvendelse 2: </b>\" & rs(\"anvendelse2\") & \"</b><br>\"
End if
If len(rs(\"anvendelse3\")) > 0 Then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Anvendelse 3: </b>\" & rs(\"anvendelse3\") & \"</b><br>\" end if Response.write \"<font color=#000000 font face=Trebuchet MS size=2><b>Se hvilke personer der iflg. Borgerdatabasen har boet i bygningen:</b> \" Response.write \"<a href=\'Borgerdatabase1899.asp?id=\" & rs(\"gadevej\") & \"&id1=\" & rs(\"gadevejnummer\") & \"\' target=\'_blank\'><b><font face=\'Trebuchet\' size=\'2\' color=\'#000000\'>1899\" & \"</font></a></b> \" Response.write \"<a href=\'Borgerdatabase1904.asp?id=\" & rs(\"gadevej\") & \"&id1=\" & rs(\"gadevejnummer\") & \"\' target=\'_blank\'><b><font face=\'Trebuchet\' size=\'2\' color=\'#000000\'>1904\" & \"</font></a></b><br><br><br>\" If len(rs(\"1thumb\")) > 0 then %> <p><a href=\"fuld.asp?id=<%= RS(\"ID\")%> & \"\' target=\'_blank\' \"><font size=\"1\" face=\"Tahoma\"><img src=\"<%= RS(\"1Thumb\")%>\"></font></a> <% end if If len(rs(\"2thumb\")) > 0 then %> <a href=\"fuld2.asp?id=<%= RS(\"ID\")%> & \"\' target=\'_blank\' \"><font size=\"1\" face=\"Tahoma\"><img src=\"<%= RS(\"2Thumb\")%>\"></font></a></p> <p> <% end if
intRecCount = intRecCount - 1 rs.MoveNext count=count+1 Loop \' Else End if if rs.recordcount = 0 then Response.Write \"<font color=#000000 font face=Trebuchet MS size=2><b>Der er ikke fundet nogle borgere, der matcher din søgning\" ELse \' End If rs.Close Set rs = Nothing If AntalP > 5 then Response.Write \"<p>Gå til side \" For intNum = 1 To intPageCount
hvis du vil kan du evt lavet det sådan at man tjekker på om der er et \".\" i teksen i lthumb for lthumb = \"\" er ikke det samme som lthumb = null. og hvis lthumb er en stil til billedet er er altid \".\" i..
Så blvier SQL\'en: strSQL = strSQL & \" OR (1thumb LIKE \'%.%\')\"
if request.Form(\"billede\") = true then strSQL = strSQL & \" OR (1thumb <> null)\" end if Disse sætninger ser mere rigtige ud. Men hvad med strbillede = Request.form(\"billede\") strbillede = Replace(strbillede,\"\'\",\"\'\'\") sætningerne øverst i min kode. Skal de ændres for nu får jeg fejlen:
Microsoft OLE DB Provider for ODBC Drivers fejl \'80040e21\'
ODBC-driver understøtter ikke de ønskede egenskaber.
Jeg har fundet ud af at et af problemerne har været, at min billedfelt i db´en skulle hedde thumb og ikke 1thumb. Koden kan åbenbart ikke forstå det, når der bruges et 1- tal.
Men hvorfor fungerer denne IF-sætning ikke??
if request.form(\"thumb\") = true then
Er det fordi jeg bruger GET-metoden eller hvad. Gerne hurtigt svar? jeg forhøjer pointantallet
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.