php教程

超轻量级php框架startmvc

网页的分页下标生成代码(PHP后端方法)

更新时间:2020-03-07 23:32:46 作者:startmvc
测试图例:效果图:实现代码:/****@param$page页码(1至正无穷)*@param$num数据中多上行为一页*

测试图例:

效果图:

实现代码:


 /**
 *
 * @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 <= $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] = '<<'; // <<
 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 < $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] = '>>';
 $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
 );
 }
 }

本文出自 IT985博客

分页下标 php分页