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 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
逐步提升php框架的性能
Jan 10 PHP
PHP学习之整理字符串
Apr 17 PHP
PHP 第三节 变量介绍
Apr 28 PHP
ThinkPHP的模版中调用session数据的方法
Jul 01 PHP
PHP命令行脚本接收传入参数的三种方式
Aug 20 PHP
php实现过滤UBB代码的类
Mar 12 PHP
ThinkPHP中数据操作案例分析
Sep 27 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
Mar 18 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 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字符串截取的简单方法
2013/07/04 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
php实现socket推送技术的示例
2017/12/20 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
python调用java的Webservice示例
2014/03/10 Python
Python中的生成器和yield详细介绍
2015/01/09 Python
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
网站开发实习生的自我评价
2013/12/11 职场文书
30年同学聚会感言
2014/01/30 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
活动策划求职信模板
2014/04/21 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS