使用thinkphp分页时,怎么保存查询的条件?

   更新日期:2024.06.02

统计和分页查询都加上相同条件就行了:

$count = M('')->where('条件')->count();

$list= M('')->where('条件')->limit(分页)->select();

附上tp手册的条件查询分页方式:



1 分页的时候,都是GET传递,所以,在点击查询后保存查询的条件,直接用GET在地址栏获取,直接输出就行。
2 查询时传入条件,因为分页的时候,也需要到后台查询数据,所以直接用GET方式接收表单查询条件,作为where条件直接查询即可。

分页一般都通过GET传递参数,TP分页时一般都会带上GET值,你根据GET值去做查询条件,当前也可以使用POST,但在分页点击把做提交,把相应的值POST到服务端,建议用GET方式。

参考下面的栗子

class MsgManageAction extends CommonAction {
    public function index(){
     import('ORG.Util.Page');
  //import调用的是message/ThinkPHP框架目录下的扩展包Extend/Library/ORG/Util/中的Page.class.php类文件
     $count = M('board')->count();
  //调用board库,取出所有数据条数
     $page = new Page($count ,10);
  //实例化Page类,其中第一个参数为显示条数的总数,每次取出十条,也就是下面$page->listRows的值
  $limit = $page->firstRow . ',' . $page->listRows;
  //$page->firstRow为查找的起始条数,默认为0,如果$page->listRows为10,那么第2页的$page->firstRow就为10,以此类推

  $board = M('board')->order('time DESC')->limit($limit)->select();
  //注意,这里较之前的版本添加了->limit($limit)
  $this->board = $board;
  $this->page = $page->show();
  //将$page->show()通过show方法解析$page内容显示并赋值给模板变量,供模板调用

  $this->display();
    }

 Public function delete(){
  $id = I('id','','intval');
  if(M('board')->delete($id)){
   $this->success('删除成功',U('index'));
  }else{
   $this->error('删除失败');
  }
 }
}


    // 用来获取当前用户的买入订单
    public function TradingList($p = null) {
        $p = intval($p) ? intval($p) : 1;
        $pageSize = 15;
        $offset = ($p - 1) * $pageSize;
        $db = M('rebate_trading');
        $TradingList = $db->where(array('userid' => XAAKE))->order('time')->limit($offset, $pageSize)->select();
        $count = count($db->where(array('userid' => XAAKE))->select());
        $page = new \Think\Page($count, $pageSize);
        $page = $page->show();
        $this->assign('page', $page);
        $this->assign('TradingList', $TradingList);
        $this->pagetitle = '已买入订单';
        $this->display();
    }

上面是没有传递查询参数的
如果 你要传递查询参数的话,请看下述代码

    // 用来获取搜索字段为field的,当前用户的买入订单
    public function TradingList($field = null,$p = null) {
        $field ? $where['field'] = array('eq',$field) : '';
        $where['userid'] = array('eq',XAAKE);
        $p = intval($p) ? intval($p) : 1;
        $pageSize = 15;
        $offset = ($p - 1) * $pageSize;
        $db = M('rebate_trading');
        $TradingList = $db->where($where)->order('time')->limit($offset, $pageSize)->select();
        $count = count($db->where($where)->select());
        $page = new \Think\Page($count, $pageSize);
        $page = $page->show();
        $this->assign('page', $page);
        $this->assign('TradingList', $TradingList);
        $this->pagetitle = '已买入订单';
        $this->display();
    }


  • 13960112626 :使用thinkphp分页时,怎么保存查询的条件?
    虞东龚1465 :答:统计和分页查询都加上相同条件就行了:count = M('')->where('条件')->count();list= M('')->where('条件')->limit(分页)->select();附上tp手册的条件查询分页方式:
  • 13960112626 :thinkphp 分页时 怎么让序号列自增的实现
    虞东龚1465 :答:实现步骤如下:1、定义全局变量:var record_start = 0;2、Grid的columns部分的定义:columns : [new Ext.grid.RowNumberer({ header : "序号",width : 40,renderer:function(value,metadata,record,rowIndex){ return record_start + 1 + rowIndex;} }), { header : "项目编号",width : 5...
  • 13960112626 :thinkphp分页时 怎么取得 上一页下一页的传递变量 就是我想不用原来的...
    虞东龚1465 :答:show = $page->show();// 分页显示输出 list = $goods->order('goods_id desc')->limit($page->firstRow.','.$page->listRows)->select();//dump($page);exit;this -> assign('list',$list);// 把获取的信息传递给模板使用 this -> assign('page',$show);// 赋值分页输出 this...
  • 13960112626 :thinkphp分页问题,想实现把上一页下一页那些字都隐藏掉,用两个div或图...
    虞东龚1465 :答:还有个方法,不用定制分页函数,分页函数出来的是一串html代码,是吧,你在页面中写入CSS,就可以把分页的样式给改变,thinkphp的分页可以控制输出项,你只输出上一页和下一页就行。不知道这样你懂了没,就是自己写个css把thibkphp分页函数的css覆盖掉,这样分页的样式就变成你要的了 ...
  • 13960112626 :thinkphp 分页时 怎么让序号列自增的实现
    虞东龚1465 :答:你可以根据当前页的page值减1再乘以每页显示的条数再加1就是该页开始第一行的序号 后面都自增好了
  • 13960112626 :thinkphp分页怎么查询总页数
    虞东龚1465 :答:1,$page = new \Think\Page($total, $listRows, $REQUEST);2,$page->totalPages 这样就可以获取到总页数
  • 13960112626 :我用thinkPHP写分页的时候,为什么前台首页和末页显示的不对
    虞东龚1465 :答:getpage方法可以放在TP框架的 Application/Common/Common/function.php,这个文档可以专门放置一些通用的方法,在哪里都可以调用(如:Controller文件,View文件等)。二、调用分页方法 m=M('products');p=getpage($m,$where,10);list=$m->field(true)->where($where)->order('id desc')->select(...
  • 13960112626 :thinkphp分页,上一下下一页是跳转到新页面.怎样改成不跳转
    虞东龚1465 :答:就是在当前页打开的啊,你如果是新窗口打开,那你就去找Page.class.php 类里面的 标签中 把target去掉就OK了
  • 13960112626 :如何处理thinkphp很多分页中:比如我现在要点击第二页修改数据,修改完了...
    虞东龚1465 :答:你可以再你修改的时候多传递一个页码参数page,这样你的话,你修改后就直接跳转到这一页去
  • 13960112626 :thinkphp分页 怎样才能不显示第几页,只显示上一页下一页?
    虞东龚1465 :答:TP官方下载完整版,自带有分页类;也可以自己写分页类 p=new Think\Page($count,$pagesize);//调用分页类 p->setConfig('theme',' %UP_PAGE% %DOWN_PAGE% ');//设置显示的样式
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网