栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

Thinkphp搜索时首页分页和搜索页保持条件分页的方法

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Thinkphp搜索时首页分页和搜索页保持条件分页的方法

本文实例讲述了Thinkphp实现搜索时首页分页和搜索页保持条件分页的方法。分享给大家供大家参考。具体实现方法如下:

在做搜索查询时突然发现在首页用的分页代码在搜索页使用时出现错误,首页分页代码(代码中标注start与end部分为分页代码)
复制代码 代码如下:public function index(){
  $res=D('Info');// 实例化Data数据对象

 
  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();
 

  $this->assign('list',$list);// 赋值数据集

 
  $this->assign('page',$show);// 赋值分页输出
 

  $this->display(); // 输出模板
}
搜索代码(代码中start与end之间标注的部分为分页代码,注释标注了分页跳转时保存查询条件),以下两种方法都可以保存条件(不清楚这样是不是写的规范),查询:
复制代码 代码如下: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($name)."&";//赋值给Page
   }

  
   $show=$Page->show();//分页显示输出
   // 进行分页数据查询
    $val=$res->where($sear)->$val=$res->where($sear)->limit($Page->firstRow.','.$Page->listRows)->select();
   

   $this->assign('search',$val);

  
   $this->assign('page',$show);
  

   $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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》及《ThinkPHP常用方法总结》

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/46716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号