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 相关文章推荐
PHP parse_url 一个好用的函数
Oct 03 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
Apache服务器无法使用的解决方法
May 08 PHP
php树型类实例
Dec 05 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
php的ddos攻击解决方法
Jan 08 PHP
PHP如何将log信息写入服务器中的log文件
Jul 29 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
Yii2框架中日志的使用方法分析
May 22 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
Yii框架的布局文件实例分析
Sep 04 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比较两个绝对时间的大小
2014/01/31 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
js 操作符汇总
2014/11/08 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
Vue一个案例引发的递归组件的使用详解
2018/11/15 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
python中的列表与元组的使用
2019/08/08 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
Python使用进程Process模块管理资源
2020/03/05 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
python logging通过json文件配置的步骤
2020/04/27 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
Android笔试题总结
2014/11/29 面试题
股东合作协议书
2014/04/14 职场文书
同居协议书范本
2014/04/23 职场文书
企业口号大全
2014/06/12 职场文书
食品工程专业求职信
2014/06/15 职场文书
金融保险专业求职信
2014/09/03 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
2014年文员工作总结
2014/11/18 职场文书
教师岗位职责
2015/02/03 职场文书
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技