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 相关文章推荐
风格模板初级不完全修改教程
Oct 09 PHP
优化NFR之一 --MSSQL Hello Buffer Overflow
Oct 09 PHP
php下将XML转换为数组
Jan 01 PHP
php学习之 循环结构实现代码
Jun 09 PHP
PHP简单获取视频预览图的方法
Mar 12 PHP
php编写的一个E-mail验证类
Mar 25 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
php实现的递归提成方案实例
Nov 14 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
php集成动态口令认证
Jul 21 PHP
浅析php中array_map和array_walk的使用对比
Nov 20 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 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
Laravel 5框架学习之表单验证
2015/04/08 PHP
PHP对象相关知识总结
2017/04/09 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
Vuex中的State使用介绍
2019/01/19 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
React实现轮播效果
2020/08/25 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
python http接口自动化脚本详解
2018/01/02 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
电气专业应届生求职信
2013/11/01 职场文书
领导干部考察材料
2014/02/08 职场文书
保护环境标语
2014/06/09 职场文书
关于读书的活动方案
2014/08/14 职场文书
导航工程专业自荐信
2014/09/02 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
教师岗位职责
2015/02/03 职场文书
党小组推荐意见
2015/06/02 职场文书
体育教师研修感悟
2015/11/18 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server