网页的分页下标生成代码(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 相关文章推荐
提问的智慧
Oct 09 PHP
php 生成文字png图片的代码
Apr 17 PHP
php中配置文件操作 如config.php文件的读取修改等操作
Jul 07 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
列举PHP的Yii 2框架的开发优势
Jul 03 PHP
thinkphp实现图片上传功能
Jan 13 PHP
必须收藏的php实用代码片段
Feb 02 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 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
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
2014/08/22 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
2019/11/15 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
Python中的列表知识点汇总
2015/04/14 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
Python pickle模块实现对象序列化
2019/11/22 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
薪酬专员岗位职责
2014/02/18 职场文书
寒山寺导游词
2015/02/03 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
Netty客户端接入流程NioSocketChannel创建解析
2022/03/25 Java/Android
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技