PHP 搜索分页问题 这个问题困扰我许多天了,想了很多办法,想到用变量存搜索后的数据,但是不么,如图,条件有3-4个,求思想?? 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一种: 用表单提交, 这样就避免了问题第二种: 提交时用javascript动态的获取参数(搜索返回时填充页面表单) 我用过第一种,有POST提交搜索,可行,但是点击下一页时,条件全部消失~ 后我又想到用POST提交之后,给分页加个参数,将POST提交的参数放到分页上如:?action=search&username=姓名&page=2这样做第二页也可以,但是到第三页又抓不到username,username显示为空?action=search&username=&page=2 分页,当跳转下一页时一般是带着参数跳转的。$value = $_POST['xx'];额,smarty这是模板$hash['value']=$value;<input type='text' value={{$value}}/>______________________________________________原理就是必须把你的参数保存下来,一直带着参数跳转 最简单的方式 让你的表单直接用get方式提交$value = $_GET['xx'];然后把值跟在你的分页url后面 下一页时你要接受GET参数就可以了。 搜索用get提交,或者用post提交,程序接受用request 如果不用cookie的话,可以在点击下一页的时候传递相应的参数。你的参数之所以会丢失是因为你只使用了一种post方式取值,现在改成这样:$value = isset($_POST['value'])?$_POST['value']:(isset($_GET['value'])?$_GET['value']:'');意思是:如果点击搜索按钮,就取post的值,否者(点击下一页)时,就取get传递的参数值。其中你要传递的参数都要在点击下页时传递。这样不会丢失值了。 在代码里面得到这些参数之后,查询数据库的时候动态的查询,比如,每页显示10条数据:$sql="SELECT xxx FROM table WHERE username='".$_GET['username']."' LIMIT ".($_GET['page']-1)*10.", 10";//这只是思路,实际用的时候要把$_GET里面的值过滤一下然后再查询其实网上很多的分页代码,你可以搜索一下,分页的代码结合查询数据库,每页显示的时候就只取出本页的数据库记录,显示 分页是正常显示的,但是就是在搜索时,保存不了条件现在我用存取,很奇怪的时,第一页可以,但是在第二页又没了,我用echo $SESSION['username'] 没有数据了$SESSION['username'] = $_POST['username']; 备注:我看到CSDN搜索也是另开一页面搜索~,同时我看到火车站的一个网站是在同一页面(用滚动条),不过他们把所有的数据都显示在同一页面,没有分页如果可以的话,我想看看你们写的程式关于这种同一页面的搜索分页.. 谢谢~~ $SESSION['username'] = $_POST['username']; 你这样写的话,每次点击下页,值会被冲掉的。。(因为点击下一页的时候没有post请求,所以$_POST['username']不存在),所以这是错误的方法。如果你一定要用session你可以加个判断,这样只有点击搜索的时候才有注册session.session_start();if(strtolower($_REQUEST['method'])=='post'){//点击搜索 $_SESSION['username'] = $_POST['username']; }最简单的还是不使用session的方式。$username = isset($_POST['username'])?$_POST['username']:(isset($_GET['username'])?$_GET['username']:'');连接用?action=search&username={$username}&page=2;这样保证不会丢失。 我用了这种方法之后,下一页可行了,?action=search&username={$username}&page=2;但是再点击第三页的时候?action=search&username=&page=3;中的username为空了?? ,条件又消失? $username = isset($_POST['username'])?$_POST['username']:(isset($_GET['username'])?$_GET['username']:'');?action=search&username={$username}&page={$curpage};不知道你的分页怎么做的,怎么会丢失呢? Sorry,写法错误,可以保存的~~ 我先完善一下.~~ 谢谢 php如何操作excel表格模板问题 客户端模拟提交的问题. SWFUpload怎样获取select下拉框中的值 mysql 排序 php 读取excel时。编码转换问题 散分,求问joomla 中的模块前端开发 为什么写入excel 总有乱码..... php mysql数据库找出最近相同内容的字段,用它们的id相减输出差 用DedeCms(织梦)管理系统怎么给其中部分图片添加背景 php在线答题系统问题 discuz是做论坛的还是网站的? 使用过IPB论坛程序的求帮助
第二种: 提交时用javascript动态的获取参数(搜索返回时填充页面表单)
?action=search&username=姓名&page=2
这样做第二页也可以,但是到第三页又抓不到username,username显示为空
?action=search&username=&page=2
$value = $_POST['xx'];
额,smarty这是模板
$hash['value']=$value;<input type='text' value={{$value}}/>
______________________________________________
原理就是必须把你的参数保存下来,一直带着参数跳转
你的参数之所以会丢失是因为你只使用了一种post方式取值,现在改成这样:$value = isset($_POST['value'])?$_POST['value']:(isset($_GET['value'])?$_GET['value']:'');
意思是:如果点击搜索按钮,就取post的值,否者(点击下一页)时,就取get传递的参数值。其中你要传递的参数都要在点击下页时传递。这样不会丢失值了。
//这只是思路,实际用的时候要把$_GET里面的值过滤一下然后再查询其实网上很多的分页代码,你可以搜索一下,分页的代码结合查询数据库,每页显示的时候就只取出本页的数据库记录,显示
你这样写的话,每次点击下页,值会被冲掉的。。(因为点击下一页的时候没有post请求,所以$_POST['username']不存在),所以这是错误的方法。
如果你一定要用session你可以加个判断,这样只有点击搜索的时候才有注册session.session_start();
if(strtolower($_REQUEST['method'])=='post'){//点击搜索
$_SESSION['username'] = $_POST['username'];
}
最简单的还是不使用session的方式。
$username = isset($_POST['username'])?$_POST['username']:(isset($_GET['username'])?$_GET['username']:'');连接用?action=search&username={$username}&page=2;
这样保证不会丢失。
我用了这种方法之后,下一页可行了,
?action=search&username={$username}&page=2;
但是再点击第三页的时候
?action=search&username=&page=3;
中的username为空了?? ,条件又消失?
不知道你的分页怎么做的,怎么会丢失呢?
Sorry,写法错误,可以保存的~~ 我先完善一下.~~ 谢谢