网页的分页下标生成代码(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安装攻略:常见问题解答(三)
Oct 09 PHP
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
for循环连续求和、九九乘法表代码
Feb 20 PHP
php自动给文章加关键词链接的函数代码
Nov 29 PHP
php中存储用户ID和密码到mysql数据库的方法
Feb 06 PHP
PHP include任意文件或URL介绍
Apr 29 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 PHP
深入理解PHP中的count函数
May 31 PHP
thinkphp分页集成实例
Jul 24 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 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
全国中波电台频率表
2020/03/11 无线电
php压缩和解压缩字符串的方法
2015/03/14 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
php封装一个异常的处理类
2017/06/08 PHP
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python实现的HMacMD5加密算法示例
2018/04/03 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
Python实现打印实心和空心菱形
2019/11/23 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
酒店公关部经理岗位职责
2013/11/24 职场文书
艺术教育实施方案
2014/05/03 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
网络研修心得体会
2016/01/08 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
MySQL8.0无法启动3534的解决方法
2021/06/03 MySQL