网页的分页下标生成代码(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 fsockopen写的HTTP下载的类
Feb 22 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
Oct 20 PHP
php简单socket服务器客户端代码实例
May 18 PHP
PHP中each与list用法分析
Jan 08 PHP
深入理解PHP类的自动载入机制
Sep 16 PHP
php rsa 加密,解密,签名,验签详解
Dec 06 PHP
php json中文编码为null的解决办法
Dec 14 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
mac pecl 安装php7.1扩展教程
Oct 17 PHP
浅谈如何提高PHP代码的质量
May 28 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学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
初识laravel5
2015/03/02 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
详解Node.JS模块 process
2020/08/31 Javascript
Python实现远程调用MetaSploit的方法
2014/08/22 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
优秀乡村医生事迹材料
2014/05/28 职场文书
优秀大学生自荐信
2014/06/09 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
给老婆的检讨书
2015/01/27 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript
python 学习GCN图卷积神经网络
2022/05/11 Python