时间:2021-05-26
本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》及《ThinkPHP常用方法总结》
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
先来看看DEDECMS默认的TAG列表分页(5.6为例):第1页时:首页上一页123456下一页末页第3页时:首页上一页123456下一页末页分页连接方式和栏目
一般而言,网站页面通常被划分成首页、频道首页、目录页、目录分页、专题页、聚合页、聚合页分页、内容页、内容页分页和索引页等类型,但究其根本,其实可以统一看作两种页
在web项目中,显示数据一般采用分页显示的,在分页的同时,用户可能还有搜索的需求,也就是模糊查询,所以,我们要在dao写一个可以分页并且可以动态加条件查询的方法
段前分页和分页符的区别如下: 1、分页符当文字或图形填满一页时,MicrosoftWord会插入一个自动分页符(分页符:上一页结束以及下一页开始的位置。Mic
本文实例讲述了thinkPHP5分页功能实现方法。分享给大家供大家参考,具体如下:其实分页自身的内容也不是很多。不过牵扯到样式的问题感觉挺烦。于是找到了分页类看