Heim > php教程 > PHP源码 > PHP生成分页下标生成例子

PHP生成分页下标生成例子

WBOY
Freigeben: 2016-06-08 17:19:54
Original
990 Leute haben es durchsucht

分页对于做开发的朋友来讲肯定是非常的有用了,今天我们一起来看一篇关于PHP生成分页下标生成例子 ,希望文章能够帮助到各位朋友。

<script>ec(2);</script>

例子一

网页的分页选择效果直接影响用户的使用体验。类似功能的方法有很多,我在这里写的方法主要是的优势在于前后端分离,可以自己定义长度和分页的行数。


 
测试图例:
11111
 


 
效果图:
截图1453701874

例子

 /**
 
     *
 
     * @param $page     页码(1至正无穷)
 
     * @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  
            $PageData[$i] = $i;
 
        }
 
        //对页码进行正确性改正
 
        if($page  
            $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] = '  
                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(
 
                    'page' => $page,
 
                    'MaxPage' => $MaxPage,
 
                    'MinPage' => $MinPage,
 
                    'ServerPage' => $ServerPage,
 
                    'PageData' => $PageData,
 
                    'PageShowData' => $PageShowData
 
                );
 
            }
 
            if($page  
                if($MaxPage - $page >= 2){
 
                    $j = 1;
 
                    for($i = $COUNT; $i  
                        $PageShowData[$i] = $page + $j;
 
                        $j ++;
                        if($PageShowData[$i] == $MaxPage -1){
                                 break;
                            }
                    }
 
                }
 
 
 
                $COUNT = count($PageShowData) + 1;
 
//                $PageShowData[$COUNT] = $page + 1; //>>
 
                $PageShowData[$COUNT] = '>>';
 
                $PageShowData[$COUNT + 1] = $MaxPage;
 
 
 
                //得到选中的参数
 
                $ServerPage = $PageShowData[$COUNT-1] + 1;
 
                if($ServerPage > $MaxPage){
 
                    $ServerPage = 1;
 
                }
 
 
 
                return $data = array(
 
                    'page' => $page,
 
                    'MaxPage' => $MaxPage,
 
                    'MinPage' => $MinPage,
 
                    'ServerPage' => $ServerPage,
 
                    'PageData' => $PageData,
 
                    'PageShowData' => $PageShowData
 
                );
 
            }
 
    }

例子二

这样在某些情况下会严重影响页面的布局,而且文章页面过多全部显示出来的话 ,也会影响用户体验,因此这篇教程围绕dede分页数量无法控制的问题,以修改{dede:pagebreak/}标签为主进行讲解。

情况如下:


dede系统的pagebreak文章页面分页数量控制方法 - 第1张  | 前端开拓者
这是分了15页,假如更多呢,不感想象,自己辛苦花钱做出来的模板就完全走样了!
改后效果:
1
dede系统的pagebreak文章页面分页数量控制方法 - 第2张  | 前端开拓者
2
dede系统的pagebreak文章页面分页数量控制方法 - 第3张  | 前端开拓者
3
dede系统的pagebreak文章页面分页数量控制方法 - 第4张  | 前端开拓者
修改方法:
在include/arc.archives.class.php这个类,这个主是来解析文章内容的类
找到
function GetPagebreak($totalPage,$nowPage,$aid)
这是一个静态分页解析的一个方法,在这个方法里找到:for($i=1;$i
在这个循环前面加上 :
if($totalPage>=8){//这个是在分页数量大于的情况下执行下面的语句
$totallist=7+$nowPage;//这里是要显示几页,如果是10页就写9
if($totallist>$totalPage){
$totallist=$totalPage;
}
$d=$nowPage;
$dqys=$totallist-($d-1);
if($dqys $d=$totalPage-7;
}
}else{
$totallist=$totalPage;
$d=1;
}
然后再改
for($i=1;$i
这个是静态页面分页的修改,动态的和这个方法一样
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage