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


 1 <?php  2 namespace Common\Common;  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 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM