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


Posted in PHP onFebruary 03, 2016

测试图例:

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

效果图:

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

实现代码:

/**
   *
   * @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 相关文章推荐
强烈推荐:php.ini中文版(2)
Oct 09 PHP
Smarty安装配置方法
Apr 10 PHP
php中的Base62类(适用于数值转字符串)
Aug 12 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
PHP使用PDO连接ACCESS数据库
Mar 05 PHP
php实现求相对时间函数
Jun 15 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
PHP新特性详解之命名空间、性状与生成器
Jul 18 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 PHP
PHP Cookei记录用户历史浏览信息的代码
Feb 03 #PHP
Symfony学习十分钟入门经典教程
Feb 03 #PHP
php开发时容易忘记的一些技术细节
Feb 03 #PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 #PHP
PHP实现的构造sql语句类实例
Feb 03 #PHP
PHP快速生成各种信息提示框的方法
Feb 03 #PHP
PHP实现原比例生成缩略图的方法
Feb 03 #PHP
You might like
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
你不知道的文件上传漏洞php代码分析
2016/09/29 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
js 复制或插入Html的实现方法小结
2010/05/19 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
详解Vue的watch中的immediate与watch是什么意思
2019/12/30 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
python的re模块应用实例
2014/09/26 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
Python输入二维数组方法
2018/04/13 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
升职自荐信
2013/11/28 职场文书
教师自荐信范文
2013/12/09 职场文书
经销商会议欢迎词
2014/01/11 职场文书
个人作风建设心得体会
2014/10/22 职场文书
中学生自我评价范文
2015/03/03 职场文书
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS