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中使用数组实现堆栈数据结构的代码
Feb 05 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
Jun 05 PHP
php header功能的使用
Oct 28 PHP
php教程之魔术方法的使用示例(php魔术函数)
Feb 12 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
Nov 12 PHP
PHP中array_slice函数用法实例详解
Nov 25 PHP
php关联数组快速排序的方法
Apr 17 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
php并发加锁示例
Oct 17 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
php实现数字补零的方法总结
Sep 12 PHP
提高Laravel应用性能方法详解
Jun 24 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
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
JavaScript实现自动对页面上敏感词进行屏蔽的方法
2015/07/27 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
Python super()函数使用及多重继承
2020/05/06 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
学年末自我鉴定
2014/01/21 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
公司活动总结怎么写
2014/06/25 职场文书
机械设计专业大学生职业生涯规划书范文
2014/09/13 职场文书
学生党员检讨书范文
2014/12/27 职场文书
安全责任书
2015/01/29 职场文书
导游词范文
2015/02/13 职场文书
团结主题班会
2015/08/13 职场文书