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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
Win2003服务器安全加固设置--进一步提高服务器安全性
May 23 PHP
攻克CakePHP系列一 连接MySQL数据库
Oct 22 PHP
PHP 简单数组排序实现代码
Aug 05 PHP
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
php 解压rar文件及zip文件的方法
May 05 PHP
Windows中使用计划任务自动执行PHP程序实例
May 09 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
Nov 19 PHP
PHP 7.1新特性的汇总介绍
Dec 16 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 09 PHP
PHP7 其他修改
Mar 09 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目录管理函数小结
2008/09/10 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
php函数与传递参数实例分析
2014/11/15 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
PHP读取大文件的几种方法介绍
2016/10/27 PHP
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
jquery中常用的SET和GET
2009/01/13 Javascript
JAVASCRIPT keycode总结
2009/02/04 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
Vue实现购物车功能
2017/04/27 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
JS表单传值和URL编码转换
2018/03/03 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
python实现弹跳小球
2019/05/13 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
管理失职检讨书
2014/02/12 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
模具专业求职信
2014/06/26 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript