ASP里搜索分页不正常,求高手帮忙!

输入关键词后,能正常显示第一页,点下一页后出现全站所有信息1700多条,不知道问题出在哪,几天都没检查出来,头都大了,麻烦高手给看看哪出错了,最好把代码帮我修改下发上来。... 输入关键词后,能正常显示第一页,点下一页后出现全站所有信息1700多条,不知道问题出在哪,几天都没检查出来,头都大了,麻烦高手给看看哪出错了,最好把代码帮我修改下发上来。解决问题的追加100分,谢谢各位。
<form id="formsearch" name="formsearch" onSubmit="return checkformsearch()" method="post" target="_blank" action="all_search.asp" style="margin:0">
<table cellSpacing="0" cellPadding="0" width="100%" border="0" id="table254">
<tr>
<td>
<select class="index_bk2" size="1" name="fox">
<option value="1" selected>供求信息</option>
<option value="2">广告张贴 </option>
</select>
</td>
<td><input class="textfield01" maxLength="20" size="15" name="keyword"></td>
</tr>
</table>
</form>
--------------------------------↑以上是搜索页代码(文件:top.htm)
<%
dim rso,sqlo,fox,tj,keyword,bd
fox=trim(request("fox"))
keyword=trim(request("keyword"))
session("foxx")=trim(request("keyword"))
bd=session("foxx")
if request("page")="" then
ThisPage=1
else
ThisPage=request("page")
end if
%>
-------------↑以上是设置接收搜索参数的变量(文件:all_search.asp)
<%
dim ThisPage,Pagesize,Allrecord,Allpage
set rso=server.createobject("adodb.recordset")
tj=0
Select Case fox
Case "1"
sqlo = "select * from FOX_xinxi where yz=1 and ts=0 and company like '%"&bd&"%' order by fbsj desc"
Case "2"
sqlo = "select * from FOX_xinxi where yz=1 and ts=1 and company like '%"&bd&"%' order by fbsj desc"
End Select
rso.open sqlo,conn,1,1
rso.Pagesize=10
Pagesize=rso.Pagesize
Allrecord=rso.Recordcount
Allpage=rso.Pagecount
if ThisPage<1 then
ThisPage=1
end if
On Error Resume Next
rso.move (ThisPage-1)*Pagesize
if rso.eof then
response.write "没有符号要求的信息....!"
else
do while not rso.eof
if fox=1 then
Response.Write "<a href=xinxiinfo.asp?fox="&rso("id")&"">"&left(rso("company"),18)&"</a>"
end if
if fox=2 then
Response.Write "<a href=adinfo.asp?fox="&rso("id")&"">"&left(rso("company"),18)&"</a>"
end if

tj=tj+1
rso.movenext
if tj>=Pagesize then exit do
loop
end if
rso.close
set rso=nothing
%>
-------------------↑以上是读取数据库的代码(文件:all_search.asp)
<%
if ThisPage<2 then
response.write "<font color=""#808080"">首页</font>"
response.write "<font color=""#808080"">上一页</font>"
else
response.write "<a href=?fox="&fox&"&page=1>首页</a>"
response.write "<a href=?fox="&fox&"&page="&ThisPage-1&"&bd="&bd&">上一页</a>"
end if
if Allpage-ThisPage<1 then
response.write "<font color=""#808080"">下一页</font>"
response.write "<font color=""#808080"">尾页</font>"
else
response.write "<a href=?fox="&fox&"&page="&(ThisPage+1)&"&bd="&bd&">下一页</a>"
response.write "<a href=?fox="&fox&"&page="&Allpage&">尾页</a>"
end if
%>
---------------------------↑以上是分页代码(文件:all_search.asp)
展开
 我来答
hanpeng120
2008-04-14 · 超过18用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:56.8万
展开全部
你的问题应该是分页获取变量的问题。

<%
if ThisPage<2 then
response.write "<font color=""#808080"">首页</font>"
response.write "<font color=""#808080"">上一页</font>"
else
response.write "<a href=?fox="&fox&"&page=1>首页</a>"
response.write "<a href=?keyword="&keyword&"&fox="&fox&"&page="&ThisPage-1&"&bd="&bd&">上一页</a>"
end if
if Allpage-ThisPage<1 then
response.write "<font color=""#808080"">下一页</font>"
response.write "<font color=""#808080"">尾页</font>"
else
response.write "<a href=?keyword="&keyword&"&fox="&fox&"&page="&(ThisPage+1)&"&bd="&bd&">下一页</a>"
response.write "<a href=?keyword="&keyword&"&fox="&fox&"&page="&Allpage&">尾页</a>"
end if
%>

应该把你获取的值都放在链接传递的参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2008-04-14
展开全部
请楼主,注意以下2点:
1.<%
...
else
ThisPage=request("page") '改为ThisPage=cint(request("page"))
end if
%>
2.
<%
....
rso.open sqlo,conn,1,1
rso.Pagesize=10
Pagesize=rso.Pagesize
Allrecord=rso.Recordcount
Allpage=rso.Pagecount
if ThisPage<1 then ThisPage=1
if ThisPage>Allpage then ThisPage=Allpage'楼主注意这裏
rso.absolutepage=ThisPage '楼主注意这裏
...
%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ww131219
2008-04-16 · TA获得超过255个赞
知道小有建树答主
回答量:296
采纳率:100%
帮助的人:164万
展开全部
把超连接改为按钮就能解决问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pshuwen
2008-04-14 · TA获得超过581个赞
知道小有建树答主
回答量:1018
采纳率:0%
帮助的人:793万
展开全部
fox=trim(request("fox"))
keyword=trim(request("keyword"))
session("foxx")=trim(request("keyword"))
bd=session("foxx")

这里好像没意思直接
fox=trim(request("fox"))
keyword=trim(request("keyword"))
bd=keyword
在传到下一页时
"<a href=?fox="&fox&"&page="&ThisPage-1&"&keyword="&bd&">上一页</a>"

"<a href=?fox="&fox&"&page="&(ThisPage+1)&"&keyword="&bd&">下一页</a>"

使用这种分页代码好用一点
<%sub listpages(mycondition)
if pages<1 then
exit sub
end if
response.write " 页码:"
if p>0 then
response.write "<a href="&request.ServerVariables("script_name")&"?currentpage=10&p="&p-1&mycondition&">[上十页]</a> "
end if

'-------------------下面写出当前十个页码

for i=1 to 10
if (p*10+i)>pages then exit for
if currentpage=i then
response.write "[<a style='font-weight:bold;color:blue;' "
else
response.write "[<a "
end if
response.write "href="&request.ServerVariables("script_name")&"?currentpage="&i&"&p="&p&mycondition&">"&(p*10+i)&"</a>] "
next

'--------------------察看下十页的连接
if (p*10+10)<pages then
response.write "<a href="&request.ServerVariables("script_name")&"?currentpage=1&p="&p+1&mycondition&">[下十页]</a>"
end if
'-----------------------------------------------上下页导航
response.write "   "
if p>0 and currentpage=1 then
response.write "<a href="&request.ServerVariables("script_name")&"?currentpage=10&p="&p-1&mycondition&">[上页]</a> "
elseif currentpage>1 then
response.write "<a href="&request.ServerVariables("script_name")&"?currentpage="¤tpage-1&"&p="&p&mycondition&">[上页]</a> "
end if
' '===上页
if (p*10+currentpage)<pages and currentpage=10 then
response.write "<a href="&request.ServerVariables("script_name")&"?currentpage=1&p="&p+1&mycondition&">[下页]</a> "
elseif (p*10+currentpage)<pages then
response.write "<a href="&request.ServerVariables("script_name")&"?currentpage="¤tpage+1&"&p="&p&mycondition&">[下页]</a> "
end if
' '===下页
if (p*10+currentpage)>1 then
response.write "<a href="&request.ServerVariables("script_name")&"?currentpage=1&&p=0"&mycondition&">[首页]</a> "
end if
' '===首页
if (p*10+currentpage)<pages then
response.write "<a href="&request.ServerVariables("script_name")&"?currentpage="&((pages-1) mod 10)+1&"&p="&((pages-1)\10)&mycondition&">[尾页]</a> "
end if
'===尾页
response.write "<samp style='color:#ffffff;'>第<b>"&(p*10+currentpage)&"/"&Pages&"</b>页 共<b>"&Records&"</b>条记录</samp>"
end sub
sub myPages(myRS,mysize) '------mysize为内部变量(主页面没有定义),myRS为主页面传递过来的RS对象(地址传递)
if myRS.eof and myRS.bof then str="没有纪录"
if str="" then
if mysize="" or NOT IsNumeric(mysize) then
mysize=15
end if
myRS.PageSize=mysize
pages=myRS.pagecount
records=myRS.recordcount
On Error Resume Next '取得数字
currentPage=request("currentPage")
if currentPage="" then
currentPage=1
end if
currentPage=CInt(currentPage)
if Err.Number <> 0 Then
currentPage=1
Err.Clear
end if
if currentPage<1 then
currentPage=1
elseIf currentPage>10 then
currentPage=10
end if
'----------------处理p
p=request("p")
if p="" then
p=0
end if
p=CLng(p)
if Err.Number <> 0 Then
p=0
Err.Clear
end if
if p<0 then
p=0
end if
'--判断是否出了页数范围
nowPage=p*10+currentPage
if nowPage>pages then
p=(pages-1)\10
currentPage=((pages-1) mod 10)+1
end if
myRS.absolutepage=p*10+currentPage
else
currentPage=1
records=0
pages=1
end if
end sub
dim pages,records,currentPage,p '--------定义变量,这些变量在主页面中,进行地址传递%>
调用时
myPagesize=10
set rs=server.CreateObject("adodb.recordset")
sql="select * from tsjy "
rs.open sql,conn,1,1
myPages rs,myPagesize
'mycondition="&keyword="&keyword '-----如还有关键字这个附加条件,注意开始有个&。
if not rs.eof then
line=myPagesize
do while not rs.eof and line>0
line=line-1
.....
rs.movenext
loop
end if
<%call listpages(mycondition)%>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式