网页的分页下标生成代码(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创建PDF中文文档
Oct 09 PHP
PHP&amp;MYSQL服务器配置说明
Oct 09 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
ThinkPHP中使用ajax接收json数据的方法
Dec 18 PHP
10个值得深思的PHP面试题
Nov 14 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 PHP
利用Laravel生成Gravatar头像地址的优雅方法
Dec 30 PHP
详解PHP序列化和反序列化原理
Jan 15 PHP
php的优点总结 php有哪些优点
Jul 19 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
laravel框架与其他框架的详细对比
Oct 23 PHP
php实例化对象的实例方法
Nov 17 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+webSoket实现聊天室示例代码(附源码)
2017/02/17 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
Prototype Number对象 学习
2009/07/19 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
[57:50]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第二局
2016/03/05 DOTA
Python 列表(List)操作方法详解
2014/03/11 Python
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
python实现Adapter模式实例代码
2018/02/09 Python
python中pip的安装与使用教程
2018/08/10 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
公司部门司机岗位职责
2014/01/03 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
我是特种兵观后感
2015/06/11 职场文书
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
java多态注意项小结
2021/10/16 Java/Android