THINKPHP实现搜索分页保留搜索条件

时间:2021-07-26 08:23:54

使用tp自带的分页类时,里面自带了POST查询条件保留机制,但是之针对于普通的map一维数组,如果包含like,gt等等比较复杂的查询条件则力不从心了.

带入查询条件

如果是POST方式查询,如何确保分页之后能够保持原先的查询条件呢,我们可以给分页类传入参数,方法是给分页类的parameter属性赋值

  1. $count = $User->where($map)->count();// 查询满足要求的总记录数
  2. $Page = new \Think\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数
  3. //分页跳转的时候保证查询条件
  4. foreach($map as $key=>$val) {
  5. $Page->parameter[$key] = urlencode($val);
  6. }
  7. $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;