网页的分页下标生成代码(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面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
PHP OPCode缓存 APC详细介绍
Oct 12 PHP
深入php var_dump()函数的详解
Jun 05 PHP
将php数组输出html表格的方法
Feb 24 PHP
php批量删除cookie的简单实现方法
Jan 26 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
php示例详解Constructor Prototype Pattern 原型模式
Oct 15 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
PHP基于单例模式编写PDO类的方法
Sep 13 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 PHP
PHP中phar包的使用教程
Jun 14 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
PHP中的类-什么叫类
2006/11/20 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
js获取height和width的方法说明
2013/01/06 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
vue指令v-html使用过滤器filters功能实例
2019/10/25 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
Python的面向对象思想分析
2015/01/14 Python
Python在不同目录下导入模块的实现方法
2017/10/27 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
python3去掉string中的标点符号方法
2019/01/22 Python
从python读取sql的实例方法
2020/07/21 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
幼儿园教师节活动方案
2014/02/02 职场文书
寒假家长评语大全
2014/04/16 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书