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 相关文章推荐
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 21 PHP
又一个php 分页类实现代码
Dec 03 PHP
Array of country list in PHP with Zend Framework
Oct 17 PHP
php中fsockopen用法实例
Jan 05 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
PHP工程师VIM配置分享
Dec 15 PHP
php提交post数组参数实例分析
Dec 17 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
PHP 中魔术常量的实例详解
Oct 26 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/05/26 PHP
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python的Template使用指南
2014/09/11 Python
Python读写ini文件的方法
2015/05/28 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
求职简历的自我评价怎样写好
2013/10/07 职场文书
药物学专业学生的自我评价
2013/10/27 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
初三毕业评语
2014/12/26 职场文书
辞职信格式范文
2015/05/13 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL