tp3.2下同时实现搜索查询和分页效果

本文介绍了在ThinkPHP3.2框架下如何在后台管理页面实现搜索查询功能,并同时保持分页效果。通过将搜索条件与文章查询相结合,确保在文章数量较多时,用户能进行有效检索并查看分页结果。

1.thinkphp下后台博文管理页面:
后台博文管理页面
2.可以看到url地址栏显示后面的参数:其中包括分类和标题的搜索条件,但是如果文章过多需要分页的时候,如何在保证搜索的同时又不影响分页效果呢?先看一下正常搜索代码:

    //接收前台查询条件,赋值给$map变量
        $cateId=I('get.cate_id',0);
        $title=I('get.title','');
        if($cateId){
            $map['a.cate_id']=array('eq',$cateId);
        }
        //strip剔除空格搜索
        if(!empty(strip_tags($title))){
            $map['a.title']=array('like',"%$title%");
        }
        //将get过来的ID和title搜索值赋到模板上进行if判断,在搜索框上保留搜索类名
        $this->assign('cateId',$cateId);
        $this->assign('title',$title);                

3.将搜索代码代入分页和文章查询条件:

//查询满足要求的总记录数(注:如果两表中的cate_id不一致则会出现有分页效果但是数据却显示不出来)
        $count=M('article a')->where($map)->count();

        //自定义单页显示页数
        $size=2;

        //自定义进入index页面时默认显示第一页
        $p=I('get.p',1);


        $Page=new \Think\Page($count,$size);
        /*post查询分页跳转的时候thinkphp3.2下有bug不能使用,以后分页条件查询用get
        foreach($map as $key=>$val) {
            $Page->parameter[$key]   =   urlencode($val);
        }*/
    //此处page()条件中就是在页面url地址中传入的p参数,因为代入了$map查询条件,所以分页也可以正常使用   
    $artList=M('article a')->join("blog_category AS c ON     a.cate_id=c.cate_id")->where($map)->page($p.','.$size)->order('art_id DESC')->select(); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值