网页的分页下标生成代码(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 相关文章推荐
支持oicq头像的留言簿(二)
Oct 09 PHP
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
PHP之短标签开启设置
Jun 17 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
迁移PHP版本到PHP7
Feb 06 PHP
Laravel路由设定和子路由设定实例分析
Mar 30 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
thinkPHP5框架自定义验证器实现方法分析
Jun 11 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
Oct 24 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
PHP 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
php 深入理解strtotime函数的使用详解
2013/05/23 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
js中switch语句的学习笔记
2020/03/25 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
Python实现统计单词出现的个数
2015/05/28 Python
Python的requests网络编程包使用教程
2016/07/11 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
销售总经理岗位职责
2014/03/15 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
学校教研活动总结
2014/07/02 职场文书
批评与自我批评范文
2014/10/15 职场文书
天坛导游词
2015/02/02 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
关于分班的感言
2015/08/04 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
六年级作文之预言作文
2019/10/25 职场文书
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技