网页的分页下标生成代码(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 相关文章推荐
Access数据库导入Mysql的方法之一
Oct 09 PHP
PHP OPCode缓存 APC详细介绍
Oct 12 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
php 文件上传实例代码
Apr 19 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
详解PHP中的状态模式编程
Aug 11 PHP
教大家制作简单的php日历
Nov 17 PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
PHP中使用mpdf 导出PDF文件的实现方法
Oct 22 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
Oct 22 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/10/09 PHP
PHP中函数内引用全局变量的方法
2008/10/20 PHP
php 分库分表hash算法
2009/11/12 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
jquery 简单的进度条实现代码
2010/03/11 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
Python库urllib与urllib2主要区别分析
2014/07/13 Python
在Python程序中实现分布式进程的教程
2015/04/28 Python
python自动翻译实现方法
2016/05/28 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
python实现电子产品商店
2019/02/26 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
用Python进行websocket接口测试
2020/10/16 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
大学四年规划书范文
2013/12/27 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
Python可视化神器pyecharts绘制水球图
2022/07/07 Python