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中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 PHP
yii2使用ajax返回json的实现方法
May 14 PHP
Laravel中间件实现原理详解
Oct 09 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
Nov 04 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
PHP开发APP端微信支付功能
Feb 17 PHP
php实现的错误处理封装类实例
Jun 20 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
Sep 01 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
Laravel 验证码认证学习记录小结
Dec 20 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中计算程序运行时间的类代码
2012/11/03 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
PHP的Yii框架的基本使用示例
2015/08/21 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
简单的php购物车代码
2020/06/05 PHP
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
浅谈$('div a') 与$('div>a')的区别
2016/07/18 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
vue2.0多条件搜索组件使用详解
2020/03/26 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
python+mysql实现简单的web程序
2014/09/11 Python
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
python获取整个网页源码的方法
2020/08/03 Python
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
关于群众路线的心得体会
2014/11/05 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
Django显示可视化图表的实践
2021/05/10 Python