Thinkphp搜索时首页分页和搜索页保持条件分页的方法


Posted in PHP onDecember 05, 2014

本文实例讲述了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]对应的是我要查找的条件,这样就可以保持条件进行分页了.

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
建立动态的WML站点(三)
Oct 09 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
php操作mysqli(示例代码)
Oct 28 PHP
PHP实现链式操作的核心思想
Jun 23 PHP
PHP针对字符串开头和结尾的判断方法
Jul 11 PHP
分析PHP中单双引号的误区和双引号小隐患
Jul 19 PHP
PHP实现接收二进制流转换成图片的方法
Jan 10 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 #PHP
ThinkPHP添加更新标签的方法
Dec 05 #PHP
彻底删除thinkphp3.1案例blog标签的方法
Dec 05 #PHP
php树型类实例
Dec 05 #PHP
Yii框架form表单用法实例
Dec 04 #PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 #PHP
Yii分页用法实例详解
Dec 04 #PHP
You might like
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
JS 建立对象的方法
2007/04/21 Javascript
JavaScript DOM 学习第九章 选取范围的介绍
2010/02/19 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
2019/04/14 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
python获取标准北京时间的方法
2015/03/24 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
Flask数据库迁移简单介绍
2017/10/24 Python
Python程序运行原理图文解析
2018/02/10 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
工作中的自我评价如何写好
2013/10/28 职场文书
资产经营总监岗位职责范文
2013/12/01 职场文书
暑期研修感言
2014/02/17 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
中小学生学籍证明
2014/10/25 职场文书
实用求职信模板范文
2019/05/13 职场文书
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python