Thinkphp搜索时首页分页和搜索页保持条件分页的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-02 21:20:43 浏览: 评论:0
这篇文章主要介绍了Thinkphp搜索时首页分页和搜索页保持条件分页的方法,以两种不同的方式详细分析了实现搜索时分页情况下保持搜索条件的方法,是非常具有实用价值的技巧,需要的朋友可以参考下
本文实例讲述了Thinkphp实现搜索时首页分页和搜索页保持条件分页的方法。分享给大家供大家参考。具体实现方法如下:
在做搜索查询时突然发现在首页用的分页代码在搜索页使用时出现错误,首页分页代码(代码中标注start与end部分为分页代码),代码如下:
- public function index(){
- $res=D('Info');// 实例化Data数据对象
- /**********start************/
- import('ORG.Util.Page');// 导入分页类
- $count= $res->count();// 查询满足要求的总记录数
- $Page = new Page($count,3);// 实例化分页类 传入总记录数(另一个参数为自定义分页条数)
- //$Page->rollPage = 3;//默认情况下,页面显示的页数是5 可以修改
- $show= $Page->show();// 分页显示输出
- // 进行分页数据查询
- $list = $res->order('iid desc')->limit($Page->firstRow.','.$Page->listRows)->select();
- /**********end************/
- $this->assign('list',$list);// 赋值数据集
- /*********start*************/
- $this->assign('page',$show);// 赋值分页输出
- /*********end*************/
- $this->display(); // 输出模板
- }
搜索代码(代码中start与end之间标注的部分为分页代码,注释标注了分页跳转时保存查询条件),以下两种方法都可以保存条件(不清楚这样是不是写的规范),查询:
- public function search() {
- $res=D('Info');
- $name=$_REQUEST['name'];
- $sear['name'] = array('like','%'.$name.'%');
- /*********start*************/
- import('ORG.Util.Page');// 导入分页类
- $count=$res->where($sear)->count();//查询数据条数
- $Page=new Page($count,2);//实例化分页函数
- /*********end*************/
- //分页跳转的时候保存查询条件
- foreach($sear as $key=>$val) {
- $Page->parameter .= "$key=".urlencode($name)."&";//赋值给Page
- }
- /*********start*************/
- $show=$Page->show();//分页显示输出
- // 进行分页数据查询
- $val=$res->where($sear)->$val=$res->where($sear)->limit($Page->firstRow.','.$Page->listRows)->select();
- /*********end*************/
- $this->assign('search',$val);
- /*********start*************/
- $this->assign('page',$show);
- /*********end*************/
- $this->display();
- }
注:
- foreach($sear as $key=>$val) {
- $Page->parameter .= "$key=".urlencode($name)."&";//赋值给Page
- }
- "$key=".urlencode($name)."&";
这里面的$name 相对应提取的是 $name=$_REQUEST['name'];获取的值。
第二种:
- public function search() {
- $res=D('Info');
- $name=$_REQUEST['name'];
- $sear['name'] = array('like','%'.$name.'%');
- import('ORG.Util.Page');// 导入分页类
- $count=$res->where($sear)->count();//查询数据条数
- $Page=new Page($count,2);//实例化分页函数
- //分页跳转的时候保证查询条件
- foreach($sear as $key=>$val) {
- $Page->parameter .= "$key=".urlencode($val[1]).'&';
- }
- $show=$Page->show();//分页显示输出
- // 进行分页数据查询
- $val=$res->where($sear)->limit($Page->firstRow.','.$Page->listRows)->select();
- $this->assign('search',$val);
- $this->assign('page',$show);
- $this->display();
- }
使用$val[1]是因为$sear是一个数组,而$val[1]对应的是我要查找的条件,这样就可以保持条件进行分页了.
Tags: Thinkphp搜索 Thinkphp分页
相关文章
- ·ThinkPHP分页实例(2014-11-20)
- ·ThinkPHP分页类使用详解(2020-10-15)
- ·ThinkPHP使用心得分享-分页类Page的用法(2020-12-25)
- ·ThinkPHP让分页保持搜索状态的方法(2021-03-09)
- ·thinkPHP中分页用法实例分析(2021-07-02)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)