网页的分页下标生成代码(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 相关文章推荐
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 PHP
php获取本地图片文件并生成xml文件输出具体思路
Apr 27 PHP
解析php利用正则表达式解决采集内容排版的问题
Jun 20 PHP
php遍历数组的4种方法总结
Jul 05 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
PHP语法小结之基础和变量
Nov 22 PHP
实例讲解PHP设计模式编程中的简单工厂模式
Feb 29 PHP
laravel中命名路由的使用方法
Feb 24 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
laravel框架使用极光推送消息操作示例
Feb 15 PHP
PHP常量及变量区别原理详解
Aug 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 读取文件内容代码(txt,js等)
2009/12/06 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
JavaScript Eval 函数使用
2010/03/23 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
Bootstrap按钮组简单实现代码
2017/03/06 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
Vue 组件封装 并使用 NPM 发布的教程
2018/09/30 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
python实现中文输出的两种方法
2015/05/09 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
Python callable内置函数原理解析
2020/03/05 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
HEMA法国:荷兰原创设计
2019/02/21 全球购物
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
社区优秀志愿者先进事迹
2014/05/09 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
奖学金感谢信
2015/01/21 职场文书
爱晚亭导游词
2015/02/09 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
python实现局部图像放大
2021/11/17 Python
Python IO文件管理的具体使用
2022/03/20 Python