thinkphp3.2.3分页代码

本文介绍了一个用于后台管理系统的公共分页类实现细节,包括初始化参数设置、列表数据获取及分页链接生成等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
/* 
 * 后台公共分页类
 */
namespace Admin_dj\Common;


class Page{
    private $Page_size; //每页显示的条目数
    private $Total_Size; //总条目数
    private $page; //当前页
    private $Total_Pages = 20; //总页数
    private $Page_Seek = array(); //是否搜索 搜索条件 keyword => '门店' city = 1
    private $PageLink;//分页链接
    private $m;//操作model
    private $field = array();//查询字段,为空则全部查询,1维数组
    private $Where = array();//查询条件 要查询的表字段条件
    private $seek;//是否搜索
    public function init($m,$Page_size = 15,$page = 1,$Page_Seek =array(),$field,$Where = array(),$PageLink) {
        //总条数不存在则按照条件查询统计
        if(!$Total_Size && $Where){
            $Total_Size = $m->where($Where)->count();
        }else{
            $Total_Size = $m->count();
        }
        //是否搜索
        if($Page_Seek){
            $seek = 1;
        }
        //每页显示条数
        $Page_size= intval($Page_size)?intval($Page_size):5;
        if(is_array($_GET['page'])){
            $v = $_GET['page'][0];
            unset($_GET['page']);
            $_GET['page'] = $v;
        }
        //当前页不存在则去获取get内的page
        if (!$Page) {
            $page = 1;
        } else {
            $page = (empty($page) ? $_GET ["page"] : $page);
        }
        //查询字段
        if(is_array($field)){
            foreach($field as $k => $v){
                $s_array .=$v.','; 
            }
        }else{
            if($field != "*"){
                $s_array = $field.',';
            }
        }
        //分页链接是否存在,不存在则调用当前连接
        $PageLink = (empty($PageLink) ? $_SERVER ["PHP_SELF"] : $PageLink);
        //总分页数
        $Total_Pages = ceil($Total_Size / $Page_size);
        //总数少于当前显示条目数时不显示分页
        if($Total_Size > $Page_size){
            return $this->list_info($m,$Where,$s_array,$Page_size,$List_Page,$PageLink,$Page_Seek,$Total_Size,$seek,$page,$Total_Pages);
        }else{
            return $this->list_info($m,$Where);
        }
        
    }
    /*
     * 列表数据
     */
    public function list_info($m,$Where,$s_array,$Page_size,$List_Page,$PageLink,$Page_Seek,$Total_Size,$seek,$page,$Total_Pages){
        //查询起始位
        if (!$_GET['page']) {
            $page = $page - 1;
        } else {
            $page = $_GET['page'];
        }
        $start_num = $page * $Page_size;
        //查询数据
        //$User->where()->field()->limit(10)->select();
        $list_info = $m->where($Where)->field(substr($s_array,0,strlen($s_array)-1))->limit($start_num,$Page_size)->select();
        if($Page_size) $list_info['page_info'] = $this->tpl($Total_Size,$page,$Total_Pages,$seek,$Page_Seek,$PageLink);
//        $list_info['page_size'] = $Page_size;
//        $list_info['Total_Pages'] = $Total_Pages;
//        $list_info['Total_Size'] = $Total_Size;
        return $list_info;
    }
    /*
     * 创建分页模板
     */
    public function tpl($Total_Size,$page,$Total_Pages,$seek,$Page_Seek,$PageLink){
        $Page_tpl .= "总 ".$Total_Size." 条记录 共 ".$Total_Pages." 页 ";
        //首页数据
        $Page_tpl .= $this->home($PageLink, $seek, $Page_Seek);
        //上一页数据
        $Page_tpl .= $this->uppage($PageLink,$seek,$Page_Seek,$page);
        //左右页数据
        //$Page_tpl .= $this->qh_page($PageLink, $seek, $Page_Seek, $page, $Total_Pages);
        //下一页数据
        $Page_tpl .= $this->pageback($PageLink, $seek, $Page_Seek, $page,$Total_Pages);
        //尾页数据
        $Page_tpl .= $this->last($PageLink, $seek, $Page_Seek, $page,$Total_Pages);
        //跳转
        $Page_tpl .= $this->input($PageLink, $seek, $Page_Seek, $page,$Total_Pages);
        //返回数据
        return $Page_tpl;
    }
    //创建首页数据
    public function home($PageLink,$seek,$Page_Seek){
        if($seek){
            $html = " <a href='".$PageLink."?page=0&";
            foreach($Page_Seek['search'] as $k => $v){
                if($v){
                    $info .='search'.'['.$k.']='.$v."&";
                }
            }
            $html .= substr($info,0,strlen($info)-1)."'>首页</a> ";
        }else{
            $html = "<a href='".$PageLink."?page=1"."'>首页</a> ";
        }
        
        return $html;
    }
    //上一页数据
    public function uppage($PageLink,$seek,$Page_Seek,$page,$Total_Pages){
        if(!$_GET['page'])$page = $page-1;
        $page = $page-1;
        
        if($page < 0) $page=0;
        if($seek){
            $html = " <a href='".$PageLink."?page=".$page."&";
            foreach($Page_Seek['search'] as $k => $v){
                if($v){
                    $info .='search'.'['.$k.']='.$v."&";
                }
            }
            $html .= substr($info,0,strlen($info)-1)."'>上一页</a> ";
        }else{
            $html = "<a href='".$PageLink."?page=".$page."'>上一页</a> ";
        }
        
        return $html;
    }
    //下一页数据
    public function pageback($PageLink,$seek,$Page_Seek,$page,$Total_Pages){
        if ($_GET['page']) {
            $page = $_GET['page'] + 1;
        } else {
            $page = $page + 1;
        }
        
        if($page >= $Total_Pages) $page=$Total_Pages-1;
        if($seek){
            $html = " <a href='".$PageLink."?page=".$page."&";
            foreach($Page_Seek['search'] as $k => $v){
                if($v){
                    $info .='search'.'['.$k.']='.$v."&";
                }
            }
            $html .= substr($info,0,strlen($info)-1)."'>下一页</a> ";
        }else{
            $html = "<a href='".$PageLink."?page=".$page."'>下一页</a> ";
        }
        
        return $html;
        
    }
    //尾页
    public function last($PageLink, $seek, $Page_Seek, $page,$Total_Pages){
        $page=$Total_Pages-1;
        if($seek){
            $html = " <a href='".$PageLink."?page=".$page."&";
            foreach($Page_Seek['search'] as $k => $v){
                if($v){
                    $info .='search'.'['.$k.']='.$v."&";
                }
            }
            $html .= substr($info,0,strlen($info)-1)."'>尾页</a> ";
        }else{
            $html = "<a href='".$PageLink."?page=".$page."'>尾页</a> ";
        }
        return $html;
    }
    //左右页数据  待完成
//    public function qh_page($PageLink, $seek, $Page_Seek, $page,$Total_Pages){
//        $html = '';
//        if($seek){
//            foreach($Page_Seek['search'] as $k => $v){
//                $info .=$k.'='.$v."&";
//            }
//            $html .="<a href='".$PageLink."?page=".($page-1)."&".substr($info,0,strlen($info)-1).">".($page-1)."</a>";
//        }else{
//            for($i=0;$i<$num;$i++){
//                $html .="<a href='".$PageLink."?page=".($page-$i).">".($page-$i)."</a>";
//            }
//            $html .= "<a href='".$PageLink."?page=".$page.">".$page."</a>";
//            for($j=0;$j<$num;$j++){
//                $html .="<a href='".$PageLink."?page=".($page+$i).">".($page+$i)."</a>";
//            }
//        }
//        return $html; 
//    }
    
    public function input($PageLink, $seek, $Page_Seek, $page,$Total_Pages){
        $html = '';
        #<form action="{$self}" method="post">
        if($seek){
            $url = $PageLink."?page=".$page."&";
            foreach($Page_Seek['search'] as $k => $v){
                if($v){
                    $info .='search'.'['.$k.']='.$v."&";
                }
            }
            $url .= substr($info,0,strlen($info)-1);
        }else{
            $url = $PageLink."?page=".$page;
        }
        $html .="<form action='".$url."' method='get'> <input type='text' name='page' value=".$page." style='width:15px;'/><input type='submit' value='跳转'/></form>";
        return $html;
    }
    
    public function test(){
        echo "测试";
    }

}



左右页并没有完善,有兴趣的小伙伴可以完善完善。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值