您的位置:首页 > 编程语言 > PHP开发

thinkphp3.2.3分页代码

2016-04-08 08:37 561 查看
<?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 "测试";

    }
}

左右页并没有完善,有兴趣的小伙伴可以完善完善。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: