ホームページ  >  記事  >  php教程  >  新闻分页下标生成

新闻分页下标生成

PHP中文网
PHP中文网オリジナル
2016-05-23 08:39:181249ブラウズ

后台生成装有下标页码的数组,到网页上打印出来(可以定义下标页码的长度)

1. [代码]后台页码下标生成   

/**
     *分页下标生成
     * 
     * @param $page    页码
     * @param $num     多少行为一页
     * @param $rows    数据总行数
     * @param $length  下标最大显示个数
     * @return array   返回数组
     */
    public function PageDate($page, $num , $rows , $length){
        //初始化数据
        $MaxPage = 0;                //最大页码
        $MinPage = 0;                //最小页码
        $ServerPage = 0;             //下拉框中选中页码
        $PageData = array();         //全部页码数组(供下拉选择框使用)
        $PageShowData = array();     //显示的下标数组
        
        $page = intval($page);      

        if($rows == 0){
            return $data = array(
                'page' => $page,
                'MaxPage' => $MaxPage,
                'MinPage' => $MinPage,
                'ServerPage' => $ServerPage,
                'PageData' => $PageData,
                'PageShowData' => $PageShowData
            );
        }

        //得到最大分页和最小分页
        $MaxPage = intval($rows / $num);
        $double = $rows % $num;
        if($double > 0.000000001)
        {
            $MaxPage += 1;
        }
        $MinPage = 1;
        $ServerPage = 1;
        //得到页码的全部项目
        for($i = 1; $i <= $MaxPage; $i++ ){
            $PageData[$i] = $i;
        }
        //对页码进行正确性改正
        if($page < $MinPage){
            $page = 1;
        }

        if($page > $MaxPage){
            $page = 1;
        }
        /*生成显示的页码标签*/
            //生成左侧的代码快
            if($page == $MinPage){
                $PageShowData[1] = $page;
            }
            if($page > $MinPage){
                $PageShowData[1] = $MinPage;
//                $PageShowData[2] = $page - 1; // <<
                $PageShowData[2] = &#39;<<&#39;; // <<
                if($page -2 > $MinPage ){
                    $PageShowData[3] = $page - 2;
                    $PageShowData[4] = $page - 1;
                }elseif($page -2 == $MinPage){
                    $PageShowData[3] = $page - 1;
                }
                //确定选中的页码代码快
                $PageShowData[count($PageShowData) + 1] = $page;
            }
        $COUNT = count($PageShowData) + 1;
        //生成右侧的代码块
            if($page == $MaxPage){
                return $data = array(
                    &#39;page&#39; => $page,
                    &#39;MaxPage&#39; => $MaxPage,
                    &#39;MinPage&#39; => $MinPage,
                    &#39;ServerPage&#39; => $ServerPage,
                    &#39;PageData&#39; => $PageData,
                    &#39;PageShowData&#39; => $PageShowData
                );
            }
            if($page < $MaxPage) {
                if($MaxPage - $page >= 2){
                    $j = 1;
                    for($i = $COUNT; $i <= $length ; $i++){
                        $PageShowData[$i] = $page + $j;
                        $j ++;
                        if($PageShowData[$i] == $MaxPage -1){
                            break;
                        }
                    }
                }

                $COUNT = count($PageShowData) + 1;
//                $PageShowData[$COUNT] = $page + 1; //>>
                $PageShowData[$COUNT] = &#39;>>&#39;;
                $PageShowData[$COUNT + 1] = $MaxPage;

                //得到选中的参数
                $ServerPage = $PageShowData[$COUNT-1] + 1;
                if($ServerPage > $MaxPage){
                    $ServerPage = 1;
                }

                return $data = array(
                    &#39;page&#39; => $page,
                    &#39;MaxPage&#39; => $MaxPage,
                    &#39;MinPage&#39; => $MinPage,
                    &#39;ServerPage&#39; => $ServerPage,
                    &#39;PageData&#39; => $PageData,
                    &#39;PageShowData&#39; => $PageShowData
                );
            }

    }

                       

2. [图片] 截图1453701874.png         


新闻分页下标生成

3. [图片] lALOBuS0o80BT80D3w_991_335.png    

新闻分页下标生成

                                           

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。