webForumDet fria alternativet

paging på söksida

ASP

4 svar · 250 visningar · startad av lillen_009

Medlem sedan nov. 2002137 inlägg
Frågan#1

Har gjort en söksida (med Er hjälp :))

Nu har jag ett pagningscript till som fungerar till viss del. (har sökt). Första sidan fungerar som den ska, men klickar man på sida två tappar den bort sökvillkoren och jag får med alla poster (även de som inte har något med sökorden att göra). Jag tror felet ligger i att man måste skicka med värden till sidan två, men HUR?


<%

Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "DRIVER={MySQL}; server=localhost; database=forum; uid=andreas; pwd=xxx;"
SQL = "SELECT COUNT(*) AS records FROM posts, members WHERE posts.author = members.memberID AND posts.msg like '%" & Request.Form("msg") & "%' AND members.membername like '%" & Request.Form("author") & "%' AND posts.forumID like '%" & Request.Form("ForumID") & "%' AND posts.header like '%" & Request.Form("header") & "%' AND posts.date > '%" & Request.Form("date1") & "%' '%" & Request.Form("date2") & "%' '%" & Request.Form("date3") & "%'"
Set rs = Con.execute(SQL)
intRecords = int(rs("records"))
rs.Close
Set rs = Nothing

intPage = Request.QueryString("page")
if intPage = "" OR not isNumeric(intPage) then
    intPage = int(1)
else
    intPage = int(intPage)
end if
intPageSize = int(2)
intStart = intPage*intPageSize
intStart = intStart-intPageSize
intPages = int(intRecords/intPageSize)+1
Set rs = Con.Execute("SELECT posts.* FROM posts, members WHERE posts.author = members.memberID AND posts.msg like '%" & Request.Form("msg") & "%' AND members.membername like '%" & Request.Form("author") & "%' AND posts.forumID like '%" & Request.Form("ForumID") & "%' AND posts.header like '%" & Request.Form("header") & "%' AND posts.date > '%" & Request.Form("date1") & "%' '%" & Request.Form("date2") & "%' '%" & Request.Form("date3") & "%' ORDER BY date DESC LIMIT " & intStart & ", " & intPageSize & ";")%>
<% 
IF rs.eof then
response.write "ingen träff" & "<br><br><a href=javascript:history.back()>Prova igen</a>"
Else
Do until rs.eof
response.write  RS("header") & "<br>"
rs.movenext
loop
End if
rs.Close
Set rs = Nothing%>
</table>
<% For i = 1 to intPages
    if i = intPage then
        Response.Write "<b>" & i & "</b> "
    else
        Response.Write "<a href=""search2.asp?page="& i & """>"
        Response.Write i
        Response.Write "</a> "
    end if
next

%>

Denna sida heter search2.asp
Sökformuläret heter search.asp

:q

Medlem sedan juni 200032 967 inlägg
#2

I länken till nästa sida, skicka med sökvillkoren i querystringen. Se till att dina request hämtar från antingen .Form eller .Querystring, du vill kunna skicka med båda. Eller; ändra metoden i formuläret till GET, och använd endast Request.Querystring.

Mvh

Medlem sedan nov. 2002137 inlägg
#3

Aha, så du menar att jag ska lägga in ett forumlär på ovanstående sida med hiddenvält som gömmer värdena, eller?

Medlem sedan juni 200032 967 inlägg
#4

Njae, inte direkt vad jag menar, även om det går att lösa på det sättet. Så här hade jag gjort.

  1. Ändrat method från post till get i formuläret.
  2. Ändrat i sql-frågorna från request.form till request.querystring
  3. Lägga till alla nödvändiga sökparametrar som querystrings i sidlänkarna, exempel:
Response.Write "<a href=""search2.asp?page="& i & "&msg=" & request.querystring("msg") &""">"

Nu lade jag bara till ett querystringvärde, för att du ska förstå vad jag menar.

Mvh

Medlem sedan nov. 2002137 inlägg
#5

[edit]
nybörjarfel :(

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)