THINKPHP实现搜索分页保留搜索条件
使用tp自带的分页类时,里面自带了POST查询条件保留机制,但是之针对于普通的map一维数组,如果包含like,gt等等比较复杂的查询条件则力不从心了.
带入查询条件
如果是POST方式查询,如何确保分页之后能够保持原先的查询条件呢,我们可以给分页类传入参数,方法是给分页类的parameter属性赋值
$count = $User->where($map)->count();// 查询满足要求的总记录数
$Page = new \Think\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数
//分页跳转的时候保证查询条件
foreach($map as $key=>$val) {
$Page->parameter[$key] = urlencode($val);
}
$show = $Page->show();// 分页显示输出
所以当接收到search参数时,选择用js修改页码按钮的链接,传递参数更简单一些
1 在控制器内传参
$this->assign('search',I('search'));
2 在列表页加一段js代码
<script type="text/javascript">
$('.num,.next,.prev').each(function(i){
this.href = this.href+'?search={$search}';
});
</script>
便利每个分页按钮,添加参数,注意需要jQuery;
学习如逆水行舟,不进则退. (说不定我的目的地是在下游呢.)