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 图片上传类代码
Jul 17 PHP
网页游戏开发入门教程三(简单程序应用)
Nov 02 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
解析PHP跨站刷票的实现代码
Jun 18 PHP
php后门URL的防范
Nov 12 PHP
php版小黄鸡simsimi聊天机器人接口分享
Jan 26 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 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文件后缀不强制为.php方法
2019/03/31 PHP
js树形控件脚本代码
2008/07/24 Javascript
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
python对Excel的读取的示例代码
2020/02/14 Python
python基于openpyxl生成excel文件
2020/12/23 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
盛大笔试题
2016/11/05 面试题
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
婚前财产公证书
2014/04/10 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
个人年终总结怎么写
2015/03/09 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
学校证明范文
2015/06/24 职场文书
小学课改工作总结
2015/08/13 职场文书
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫