webForumDet fria alternativet

"förtstora" sökning

ASP

6 svar · 241 visningar · startad av magnusfeldth

Medlem sedan jan. 20034 480 inlägg
Frågan#1

jag har en sökmotor som söker igenom en databas. Sedan skall de fem senaste posterna visas. När man klickar på en länk skall man kunna se alla träffarna dock... jag skrev så här men det verkar som inte söksträngen skickas med andra gången...

<% if request.querystring("do") = "sokning" OR request.querystring("do") = "storsokning" then %>Sökresultat:<% else %>Vad vill du göra nu? Smörja 
              in dig i honung och springa naken genom biodlingar?<% end if %></b></h3></td>
            </tr>
            <tr> 
              <td width="100%" valign="top"> <table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3" cellpadding="0">
                  <tr> 
                    <td width="100%" valign="top"><h3>

<% if request.querystring("do") = "sokning" then %>
<% Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("addemalmbergadmin/tubsockan.mdb")

SQL2 = "select top 5 * from sockrates where rubrik like '%" & request.form("search1") & "%' ORDER BY ID DESC"
set RecSet = connect.execute(SQL2)

If RecSet.EOF Then %>Sökordet <b><%= Request.Form("search1") %></b> gav inga träffar! 
<% else %>
<% do until recset.EOF
%>
<h3><img src="images/nallenomarkerad.gif"><a class="meny" href="sidval.asp?id=<% = RecSet("ID") %>">
<% = RecSet("Rubrik") %></a></h3>
<%
recset.Movenext
Loop 
recset.Close %>
<% end if %>
<% Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("addemalmbergadmin/tubsockan.mdb")

strSQL = "select count(*) from sockrates where rubrik like '%" & request.form("search1") & "%'"
set objRS = connect.execute(strSQL)
intAntal = CInt(objRS(0))
if intAntal > 5 then %>

[red][b]<img src="images/searchmore.gif"> <a href="vtassistent.asp?do=storsokning">Se fler resultat...</a>[/b][/red]

<% end if %>
<% end if %>
<% if request.querystring("do") = "storsokning" then %>
<% Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("addemalmbergadmin/tubsockan.mdb")

SQL2 = "select * from sockrates where rubrik like '%" & request.form("search1") & "%' ORDER BY ID DESC"
set RecSet = connect.execute(SQL2)

do until recset.EOF
%>
<h3><img src="images/nallenomarkerad.gif"><a class="meny" href="sidval.asp?id=<% = RecSet("ID") %>">
<% = RecSet("Rubrik") %></a></h3>
<%
recset.Movenext
Loop 
recset.Close %>
<% end if %>

</h3></td>
                  </tr>
                  <tr> 
                    <td width="100%" valign="top"><form method="post" action="vtassistent.asp?do=sokning"><textarea rows="2" style="width: 190; border: 1px solid #ECE9D8; font-family:Arial; font-size:11px" name="search1" cols="27"><% if request.querystring("do") = "sokning" then %><% = request.form("search1") %><% else %>Skriv din fråga här och klicka på Sök.<% end if %></textarea>
</td>
                  </tr>
                  <tr> 
                    <td width="100%" valign="top"><table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="185" id="AutoNumber22" cellpadding="0">
                              <tr>
                                <td width="50%">
  <input type="button" value="Alternativ" name="B2" onClick="location='assistentalternativ.asp'" style="border: 1px solid #C0C0C0; background-color: #FFFFCC; font-family:Arial; font-size:11px; padding-left:1; padding-right:1"></td>
                                <td width="50%">
                                <p align="right">
  <input type="submit" value="Sök" name="B1" style="border: 1px solid #C0C0C0; background-color: #FFFFCC; font-family:Arial; font-size:11px; padding-left:1; padding-right:1"></td>
                              </tr>
                            </table>
</form></td>
                  </tr>
                </table></td>
            </tr>
          </table></td>
        <td width="22" background="images/nallenrutaright22.gif" valign="top"> 
          <img border="0" src="images/nallenrutapilright22.gif"></td>
      </tr>
      <tr> 
        <td width="100%" colspan="3"> <img border="0" src="images/nallenrutaunder.gif"></td>
      </tr>
    </table>

                            </td>
                            <td valign="top"><img src="<% IF Request.Cookies("sockan")("assistent") = "" then %>images/assistenter/nallen.gif<% else %><% = Request.Cookies("sockan")("assistent") %><% end if %>" width="50" height="75" border="0"></h1></td>
                          </tr>
                        </table>
                        </td>
                      </tr>
                      </table></form>
Medlem sedan jan. 20034 480 inlägg
#2

lång kod, jag vet... jag har fetat området där "vidaresökningen" är

Medlem sedan mars 20015 287 inlägg
#3

Släng med innehållet i request.form("search1") som en querystring till nästa sida i din länk. Samt ändra request.form("search1") till request.("search1") alt. skriv en ifsats så att den kanske i första hand ska ta request.form("search1") o annars request.querystring("search1")

Liten fotnot bara, du gör lite många växlingar mellan asp/html, främst då alla %><%. Kanske en tanke att börja vänja dig av med det?

Medlem sedan jan. 20034 480 inlägg
#4

hur skriver jag för att skicka med sökningen i en querystring?
href="vtassistent.asp?do=<% = request.("search1") %>" ?

Medlem sedan dec. 20003 887 inlägg
#5

Nu har jag haft en smula lite att göra, så jag tog mig friheten att ändra och putsa i din kod. Det är dock inget svar på din fråga... det kanske kommer efter lunch :)

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("addemalmbergadmin/tubsockan.mdb")

If Request.QueryString("do") = "sokning" Or Request.QueryString("do") = "storsokning" Then
  strHTML = "Sökresultat:"
Else
  strHTML = "Vad vill du göra nu? Smörja in dig i honung och springa naken genom biodlingar?"
End If

strHTML = strHTML & "</b></h3></td></tr><tr>" & _
  "<td width=""100%"" valign=""top"">" & _
  "<table border=""0"" cellspacing=""0"" style=""border-collapse: collapse"" bordercolor=""#111111""" & _
  " width=""100%"" id=""AutoNumber3"" cellpadding=""0"">" & _
  "<tr><td width=""100%"" valign=""top""><h3>"

If Request.QueryString("do") = "sokning" Then
  strSQL = "select top 5 * from sockrates where rubrik like '%" & Request.Form("search1") & "%' ORDER BY ID DESC"
  Set RecSet = Connect.Execute(strSQL, , 1)

  If RecSet.EOF Then
    strHTML = strHTML & "Sökordet <b>" & Request.Form("search1") & "</b> gav inga träffar!"
  Else
    Do Until RecSet.EOF
      strHTML = strHTML & "<h3><img src=""images/nallenomarkerad.gif"">" & _
        "<a class=""meny"" href=""sidval.asp?id=" & RecSet("ID") & """>" & RecSet("Rubrik") & "</a></h3>"

      RecSet.MoveNext
    Loop
  End If

  strSQL = "select count(*) from sockrates where rubrik like '%" & Request.Form("search1") & "%'"
  Set RecSet = Connect.Execute(strSQL, , 1)

  intAntal = CInt(RecSet(0))
  If intAntal > 5 Then
    strHTML = strHTML & "<img src=""images/searchmore.gif"">" & _
      "<a href=""vtassistent.asp?do=storsokning"">Se fler resultat...</a>"
  End If
End If

If Request.QueryString("do") = "storsokning" Then
  strSQL = "select * from sockrates where rubrik like '%" & Request.Form("search1") & "%' ORDER BY ID DESC"
  Set RecSet = Connect.Execute(strSQL, , 1)

  Do Until RecSet.EOF
    strHTML = strHTML & "<h3><img src=""images/nallenomarkerad.gif"">" & _
      "<a class=""meny"" href=""sidval.asp?id=" & RecSet("ID") & ">" & RecSet("Rubrik") & "</a></h3>"

    RecSet.MoveNext
  Loop

  RecSet.Close
End If

strHTML = strHTML & "</h3></td></tr><tr><td width=""100%"" valign=""top"">" & _
  "<form method=""post"" action=""vtassistent.asp?do=sokning"">" & _
  "<textarea rows=""2"" style=""width: 190; border: 1px solid #ECE9D8; font-family:Arial; font-size:11px""" & _
  " name=""search1"" cols=""27"">"

If Request.QueryString("do") = "sokning" Then
  strHTML = strHTML & Request.Form("search1")
Else
  strHTML = strHTML & "Skriv din fråga här och klicka på Sök."
End If

strHTML = strHTML & "</textarea></td></tr><tr><td width=""100%"" valign=""top"">" & _
  "<table border=""0"" cellspacing=""0"" style=""border-collapse: collapse"" bordercolor=""#111111""" & _
  " width=""185"" id=""AutoNumber22"" cellpadding=""0"">" & _
  "<tr><td width=""50%"">" & _
  "<input type=""button"" value=""Alternativ"" name=""B2"" onClick=""location='assistentalternativ.asp'""" & _
  " style=""border: 1px solid #C0C0C0; background-color: #FFFFCC; font-family:Arial; font-size:11px; padding-left:1; padding-right:1""></td>" & _
  "<td width=""50%""><p align=""right"">" & _
  "<input type=""submit"" value=""Sök"" name=""B1""" & _
  " style=""border: 1px solid #C0C0C0; background-color: #FFFFCC; font-family:Arial; font-size:11px; padding-left:1; padding-right:1"">" & _
  "</td></tr></table></form></td></tr></table></td></tr></table></td>" & _
  "<td width=""22"" background=""images/nallenrutaright22.gif"" valign=""top"">" & _
  "<img border=""0"" src=""images/nallenrutapilright22.gif""></td></tr>" & _
  "<tr><td width=""100%"" colspan=""3""><img border=""0"" src=""images/nallenrutaunder.gif""></td></tr></table>" & _
  "</td><td valign=""top""><img src="""

If Request.Cookies("sockan")("assistent") = "" Then
  strHTML = strHTML & "images/assistenter/nallen.gif"
Else
  strHTML = strHTML & Request.Cookies("sockan")("assistent")
End If

strHMTL = strHMTL & """ width=""50"" height=""75"" border=""0""></h1></td></tr></table></td></tr></table></form>"

Response.Write strHTML

Set RecSet = Nothing
%>
Medlem sedan jan. 20034 480 inlägg
#6

"Släng med innehållet i request.form("search1") som en querystring till nästa sida i din länk"

-- hur gör jag det? nån som vet?

Medlem sedan mars 20015 287 inlägg
#7

Om du ändrar i detta stycket så att du får med dig innehållet i variabeln search1:

If intAntal > 5 Then
    strHTML = strHTML & "<img src=""images/searchmore.gif"">" & _
      "<a href=""vtassistent.asp?do=storsokning&search1=" & search1 & """>Se fler resultat...</a>"
  End If

Sen får du även ändra alla Request.Form("search1") till search1

Samt att du lägger till denna snutt högt uppe på sidan:

If Request.Form("search1") <> "" then
	search1 = Request.Form("search1")
Else
	search1 =  Request.Querystring("search1")
End If

Det tycker jag borde fungera.
(OBS Utgår från Engine^s kod)

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)