PHP分页类,生成分页html字符串

  1 <?php
  2 namespace CommonCommon;
  3 
  4 /**
  5  * 该Page类主要有两个方法:showPageString(), showPageStringAsAJAX()
  6  * 
  7  * showPageString():主要用于生成普通的超链接的html分页代码,页面也会随之刷新。
  8  * 
  9  * showPageStringAsAJAX():主要用于利用ajax发送异步请求,生成带有js函数和参数的html分页代码。
 10  * 
 11  * @author Fly 2016/09/25
 12  *
 13  */
 14 class Page{
 15     
 16     /**
 17      * 通用的分页html字符串
 18      * 
 19      * @param int $currentPage    当前页面
 20      * @param int $pageSize    页面条数
 21      * @param int $totalCount    总条数
 22      * 
 23      * @return string $output    返回的分页Html字符串
 24      */
 25     public function showPageString($currentPage, $pageSize, $totalCount){
 26         $redirectTo = "/Admin/Score/loadOrderInfo";//分页每次跳转的地址
 27         $pageSize = $pageSize == 0 ? 3 : $pageSize;
 28         
 29         $totalPages = floor(($totalCount + $pageSize - 1) / $pageSize); //总页数
 30         $output = '<nav><ul class="pagination">';//输出字符串
 31         if ($totalPages > 1)
 32         {
 33             //if (currentPage != 1)
 34             {//处理首页连接
 35                 $output .= "<li><a  href=".$redirectTo."?pageIndex=1&pageSize=".$pageSize."'>首页</a></li>";
 36                 
 37             }
 38             if ($currentPage > 1)
 39             {//处理上一页的连接
 40                 $output .= "<li><a  href='".$redirectTo."?pageIndex=".($currentPage -1)."&pageSize=".$pageSize."'>上一页</a></li>";
 41             }
 42             else
 43             {
 44                 // output.Append("<span class='pageLink'>上一页</span>");
 45             }
 46         
 47             $output .= " ";
 48             $currint = 5;
 49             for ($i = 0; $i <= 10; $i++)
 50             {//一共最多显示10个页码,前面5个,后面5个
 51                 if (($currentPage + $i - $currint) >= 1 && ($currentPage + $i - $currint) <= $totalPages)
 52                 {
 53                     if ($currint == $i)
 54                     {//当前页处理
 55                         //output.Append(string.Format("[{0}]", currentPage));
 56                         $output .= "<li class='active'><a  href='javascript:void(0);'>$currentPage</a></li>";
 57                     }
 58                     else
 59                     {//一般页处理
 60                         $output .= "<li><a  href='".$redirectTo."?pageIndex=".($currentPage + $i - $currint)."&pageSize=".$pageSize."'>".($currentPage + $i - $currint)."</a></li>";
 61                     }
 62                 }
 63                 $output .= " ";
 64             }
 65             if ($currentPage < $totalPages)
 66             {//处理下一页的链接
 67                 $output .= "<li><a  href='".$redirectTo."?pageIndex=".($currentPage + 1)."&pageSize=".$pageSize."'>下一页</a></li>";
 68             }
 69             else
 70             {
 71                 //output.Append("<span class='pageLink'>下一页</span>");
 72             }
 73             $output .=" ";
 74             if ($currentPage != $totalPages)
 75             {
 76                 $output .= "<li><a  href='".$redirectTo."?pageIndex=".$totalPages."&pageSize=".$pageSize."'>末页</a></li>";
 77             }
 78             $output .= "</ul></nav>";
 79         }
 80         //$output .= "第".$currentPage."页 / 共".$totalPages."页";//这个统计加不加都行
 81         
 82         return $output;
 83     }
 84     
 85     /**
 86      * 利用ajax的异步分页
 87      * 
 88      * @param string $jumpFun    对应js的function名字
 89      * @param int $currentPage    当前页面
 90      * @param int $pageSize    页面条数
 91      * @param int $totalCount    总条数
 92      * 
 93      * @return    string    $output    返回的分页Html字符串
 94      */
 95     public function showPageStringAsAJAX( $jumpFun, $currentPage, $pageSize, $totalCount){
 96         
 97         $pageSize = $pageSize == 0 ? 3 : $pageSize;
 98         
 99         $totalPages = floor(($totalCount + $pageSize - 1) / $pageSize); //总页数
100         $output = '<nav><ul class="pagination pagination-lg">';//输出字符串
101         if ($totalPages > 1)
102         {
103             //if (currentPage != 1)
104             {//处理首页连接
105                 $output .= "<li><a class='pageLink' href='javascript:void(0);'  onclick='".$jumpFun."(1,".$pageSize.")'>首页</a></li>";
106         
107             }
108             if ($currentPage > 1)
109             {//处理上一页的连接
110                 $output .= "<li><a href='javascript:void(0);' onclick='".$jumpFun."(".($currentPage - 1).", ".$pageSize.")'>上一页</a></li>";
111             }
112             else
113             {
114                 // output.Append("<span class='pageLink'>上一页</span>");
115             }
116         
117             $output .= " ";
118             $currint = 5;
119             for ($i = 0; $i <= 10; $i++)
120             {//一共最多显示10个页码,前面5个,后面5个
121                 if (($currentPage + $i - $currint) >= 1 && ($currentPage + $i - $currint) <= $totalPages)
122                 {
123                     if ($currint == $i)
124                     {//当前页处理
125                         //output.Append(string.Format("[{0}]", currentPage));
126                         $output .= "<li class='active'><a  href='javascript:void(0);'>$currentPage</a></li>";
127                     }
128                     else
129                     {//一般页处理
130                         $output .= "<li><a  href='javascript:void(0);' onclick='".$jumpFun."(".($currentPage + $i - $currint).",".$pageSize.")'>".($currentPage + $i - $currint)."</a></li>";
131                     }
132                 }
133                 $output .= " ";
134             }
135             if ($currentPage < $totalPages)
136             {//处理下一页的链接
137                 $output .= "<li><a  href='javascript:void(0);' onclick='".$jumpFun."(".($currentPage + 1).",".$pageSize.")'>下一页</a></li>";
138             }
139             else
140             {
141                 //output.Append("<span class='pageLink'>下一页</span>");
142             }
143             $output .=" ";
144             if ($currentPage != $totalPages)
145             {
146                 //处理末页的链接
147                 $output .= "<li><a  href='javascript:void(0);' onclick='".$jumpFun."(".$totalPages.", ".$pageSize.")'>末页</a></li>";
148             }
149             $output .= "</ul></nav>";
150         }
151         //$output .= "第".$currentPage."页 / 共".$totalPages."页";//这个统计加不加都行
152         
153         return $output;
154     }
155     
156 }
原文地址:https://www.cnblogs.com/reader/p/5908106.html