webForumDet fria alternativet

Sökning med paging

ASP

10 svar · 392 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

Mitt problem är att vad man än söker på så visas inget resultat....nån som kan se vad jag har gjort för fel

I min sökfunktion har jag defaultfilen som innehåller

<%if request("do")="search" then%>
<div class="brodtext">
Sök efter <a class="brodtext" href="/search/?do=search&type=username"> användarnamn</a><br>
Sök efter <a class="brodtext" href="/search/?do=search&type=gender"> man/kvinna</a>
</div>

<%if request("type")="username" then%>
<!--#include virtual="/search/userSearch.asp"-->
<%end if%>
<%end if%>

och efter denna kod har jag en include som heter userSearch.asp och som innehåller sökningen och pagingen.

<!-- ===================================== Visa sökformuläret =====================================-->
<form name="search" action="/search/default.asp?do=search&type=username" method="post">
<table>
	<tr>
		<td>Sök användarnamn</td><td><input type="text" name="txtUsername" value=""></td>
	</tr>
	<tr>
				<%if Session("userID") = 2 then%>
		<td align="right" colspan="2"><input disabled class="button" type="submit" value="Starta sökning"></td>
				<%else%>
		<td align="right" colspan="2"><input class="button" type="submit" value="Starta sökning"></td>
				<%End If%>
	</tr>
</table>
</form>
<!-- ===================================== Sluta visa sökformuläret =====================================-->
<hr>
<!-- ===================================== Kontroll om något är inskrivet =====================================-->
<%
if request.form("sokUsername")="" then
response.write ""
else
%>
<!-- ===================================== Slut kontroll om något är inskrivet =====================================-->

<!-- ===================================== Kolla om sökningen gav resultat eller inte =====================================-->
<table>
<%
varUsername=request.form("txtUsername")
Set objRs = Server.Createobject("Adodb.Recordset")
strSQL = "Select * From tblUsers where username LIKE '%" & varUsername & "%'" 
strConString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "& server.MapPath("/db/Inloggning.mdb") & ";"

function getPreviousLink( intp )
  if intp > 1 then
    getPreviousLink = " <a class=""menu"" href='/search/?do=search&type=username&p=" & intp - 1 & "'>&lt;&lt; Föregående</a> "
    else
        If intp < 2 then
              response.write "&lt;&lt; Föregående"
        end if  
  end if
end function

function getNextLink( intPageId, intPageCount )
  if cint( intpageId ) <> cint( intPageCount ) then
    getNextLink = " <a class=""menu"" href='/search/?do=search&type=username&p=" & intp + 1 & "'> Nästa »</a> "
        else
    getNextLink = " Nästa »"
  end if
end function

function getLastLink( intPageCount )
  getLastLink = " <a class=""menu"" href='/search/?do=search&type=username&p=" & intPageCount & "'>Sista sidan</a> "
end function

function getPageInfo( intp, intPageCount )
  getPageInfo = " Antal sidor: " & intPageCount & ", nuvarande sida: " & intp & " "
end function

intp = request.querystring( "p" )
if intp = "" then intp = 1

with objRs
  .cursorlocation = 3
  .open strSQL, strConString
  .pagesize = 5
  .absolutepage = intp
end with

intPages = cint( objRs.pagecount )
intCurrentPost = 0

do while not objRs.eof and intCurrentPost < objRs.pagesize
  strContents = strContents 

%>
	<tr>  
        <td>
		<a href="/mail/writeMail.asp?sender=<%=Session("userID")%>&reciever=<%=objRs("userID")%>">
		<img border="0" title="Skicka meddelande till <%=objRs("username")%>" <%=mail%>"></a>
		</td>
        <td>
		<a class="menu" href="/view.asp?userID=<%=objRs("userID")%>"><%=objRs("username")%> </a></td>
		<td><%alder=FormatNumber(DateDiff("y",objRs("persnr") ,date())/365.2375,1)%>
		<%=alder%> år </td><td> från <%=objRs("city")%> i <%=objRs("Community")%>s län</td>
    </tr>
 <% 
intCurrentPost = intCurrentPost + 1
  objRs.movenext
loop

for i = 1 to objRs.pagecount
  strNavigation = strNavigation & " <a class=""menu"" href='/search/?do=search&type=username&p=" & i & "'>" & i & "</a>"
next

%>
   <tr>
   <td colspan="4"><br><hr><%=getPreviousLink( intp )%> &nbsp; <%=strNavigation%> &nbsp; <%=getNextLink( intp, intPageCount )%></td>
   </tr>
</table>  
<!-- ===================================== Slut kolla om sökningen gav resultat eller inte =====================================-->
<%end if%>
Medlem sedan juni 200032 967 inlägg
#2

Du har skrivit:

if request.form("sokUsername")="" then

Så heter inte fältet.

mvh

Medlem sedan feb. 20032 027 inlägg
#3

Nu dök ett annat problem upp när det första löstes. När man nu går in på sida 2 eller framåt så visas inga resultat....bara på sida 1

Medlem sedan juni 200032 967 inlägg
#4

Du måste skicka med sökordet i varje sidlänk också. Och eftersom det då blir querystring av det hela, så får du ta bort .form ur if-satsen ovan.

Edit: Notera att du, om du ska skicka sökord både via querystring och form, inte får specificera vare sig .form eller .querystring i någon av dina requests för sökordet.

mvh

Medlem sedan feb. 20032 027 inlägg
#5

är helt utbränd i skallen nu, hur skickar jag med sökordet och tar emot det :-)

Medlem sedan juni 200032 967 inlägg
#6

I dina länkar till de olika sidorna lägger du bara till:

&txtUserName=" & server.urlencode(Request("txtUserName")) &"

(se till att konkateneringen av alla strängar blir rätt bara, det blir lite konstigt när jag bara skriver en halv kodrad. =)

Sedan, på alla ställen där du ska hämta in sökordet använder du

Request("txtUserName")

istället för

Request.Form("txtUserName")

Mvh

Medlem sedan feb. 20032 027 inlägg
#7

Nu verkar det nästan fungera, tack för all hjälp.....nu ska jag bara fixa så att ingen felsida kommer upp om inget sökresultat finns

Medlem sedan feb. 20032 027 inlägg
#8

När jag söker efter ex d så får jag träffar på 2 sidor, klickar jag på nästa sida eller på sida två så kommer 8 sidor fram, jag får ju med sökordet i querystringen.....knepigt

Medlem sedan juni 200032 967 inlägg
#9

Kod, bitte.

Medlem sedan feb. 20032 027 inlägg
#10

@nders skrev:

Kod, bitte.

fixade själv, var bara lite felskrivet :-)

Medlem sedan juni 200032 967 inlägg
#11

Så trevligt. =)

mvh

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