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 self,$this,const,static,->的使用
Oct 22 PHP
PHP array 的加法操作代码
Jul 24 PHP
PHP 显示客户端IP与服务器IP的代码
Oct 12 PHP
javascript,php获取函数参数对象的代码
Feb 03 PHP
PHP判断文章里是否有图片的简单方法
Jul 26 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
php实现图片等比例缩放代码
Jul 23 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
谈谈PHP连接Access数据库的注意事项
Aug 12 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
Jan 30 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 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 foreach正序倒序输出示例代码
2014/07/01 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
浅谈Javascript如何实现匀速运动
2014/12/19 Javascript
Javascript的闭包详解
2014/12/26 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
2016/08/05 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
python实现网站微信登录的示例代码
2019/09/18 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
const和static readonly区别
2013/05/20 面试题
do you have any Best Practice for testing
2016/06/04 面试题
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
采购部年度工作总结
2015/08/13 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书