网页的分页下标生成代码(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 第三节 变量介绍
Apr 28 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
Nov 07 PHP
PHP Directory 函数的详解
Mar 07 PHP
PHP 类相关函数的使用详解
May 10 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
Sep 12 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
简单解决微信文章图片防盗链问题
Dec 17 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
Sep 13 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
如何过滤高亮显示非法字符
2006/10/09 PHP
php select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
thinkphp缓存技术详解
2014/12/09 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
javascript 动态加载 css 方法总结
2009/07/11 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
在python中画正态分布图像的实例
2019/07/08 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
英文版餐饮业求职信
2013/10/18 职场文书
高级工程师岗位职责
2013/12/15 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
公司管理建议书
2015/09/14 职场文书
创业计划书之养殖业
2019/10/11 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS