tp5查询数据经过foreach处理后,分页失效

tp5查询数据经过foreach处理后,分页方法失效

有时候我们需要统计数据,但数据处理后分页信息就没了,就无法使用TP5自带的分页方法,或者前端使用的不是bootstrap框架,使用分页方法样式就失效了,博主网上找了很久也没有找,所以就自己写了个分页方法,这样就可以使用自己的分页样式或者处理完数据后,进行分页,今天把它放在这里,希望能帮助到你
下方分别是控制器代码和前端代码
控制器代码:

public function fy(){
	//根据自己的需求在下面3条查询语句中选择一条
	//查询所有数据
        $select=Db('test')->select();
        //限制展现的数据数使用paginate(),比如100条
        $select=Db('test')->paginate(100);
        //如果有进行条件筛选的话第一个是同上是要展现的条数,第二个是改方法本身查询条数的参数,填false即可,第三个为条件参数,通过get方法传入
        $select=Db('test')->paginate(100,false,$config = ['query' => array('Xid' => input('Xid'),'code' => input('code'))]);
        //自己进行的数据处理
        foreach($select as $k=>$v){
            //比如循环后生成新的数据就变成了数组
            $jrtt[$k]=$v;
        }
        //分页处理
        $page=input('get.page');//获取get传入的分页参数
        //当分页条件为空时,默认首页
        if($page==""){
            $page=1;
        }
        $pagesize=10;//每页显示条数
        $count = count($jrtt);//总条数
        $page_count=$count/$pagesize;//页面数
        //计算分页页数
        if($count%$pagesize!=0){
            $page_count=ceil($page_count);
        }
        $start=($page-1)*$pagesize;//偏移量,当前页-1乘以每页显示条数
        $end=($page+1)*$pagesize;//偏移量,当前页-1乘以每页显示条数
        $formArr = array_slice($jrtt,$start,$pagesize);
        $this->assign('jrtt',$formArr);
        $pageArr=array(
            'page'=>$page,//当前分页
            'count'=>$count,//数组信息总数
            'page_count'=>$page_count,//页数
            'start'=>$start,//上一页
            'end'=>$end,//下一页
        );
//        dump($pageArr);die;//查看分页数据
        $this->assign("pageArr",$pageArr);
        return view('list');
}

前端代码(将php填入自己的样式中,如果前端使用的是bootstrap的话,直接复制即可)

<!--分页-->
                <div style="padding-top:10px; text-align:right;">
                    <ul class="pagination">
                        <!--判断当前是否是首页,是不能点击,不是,当前页减1,可点击跳转-->
                        {if condition="$pageArr.page==1"}
                        <li class="disabled"><span>«</span></li>
                        {else /}
                        <li><a href="/index.php/admin/jrtt/index?page={$pageArr.page-1}">«</a></li>
                        {/if}
                        <!--循环页数 123456-->
                        {for start="1" end="$pageArr.page_count+1"}
                        {if condition="$i==$pageArr.page"}
                        <li class="active">
                            <span>{$i}</span>
                        </li>
                        {else /}
                        <li><a href="/index.php/admin/jrtt/index?page={$i}">{$i}</a></li>
                        {/if}
                        {/for}
                        <!--判断当前是否是尾页,是不能点击,不是,当前页+1,可点击跳转-->
                        {if condition="$pageArr.page==$pageArr.page_count"}
                        <li class="disabled"><span>»</span></li>
                        {else /}
                        <li><a href="/index.php/admin/jrtt/index?page={$pageArr.page+1}">»</a></li>
                        {/if}
                    </ul>
                </div>
                <!--分页结束-->

到此就结束了,希望能帮到打架,如果需要权限功能的代码的话可到这获取https://www.kancloud.cn/zhuoe123/thinkphp5/1656454

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值