网页的分页下标生成代码(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代码包装修正版
Mar 15 PHP
php学习之 循环结构实现代码
Jun 09 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
php使用base64加密解密图片示例分享
Jan 20 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
YII2框架中使用yii.js实现的post请求
Apr 09 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
ThinkPHP中图片按比例切割的代码实例
Mar 08 PHP
PHP保留两位小数的几种方法
Jul 24 PHP
php将xml转化对象的实例详解
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
自己动手做一个SQL解释器
2006/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
window.name代替cookie的实现代码
2010/11/28 Javascript
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
Python程序设计入门(3)数组的使用
2014/06/16 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
详解C++编程中一元运算符的重载
2016/01/19 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
python 图像插值 最近邻、双线性、双三次实例
2020/07/05 Python
python 6行代码制作月历生成器
2020/09/18 Python
python实现定时发送邮件
2020/12/23 Python
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
最受欢迎的自我评价
2013/12/22 职场文书
借条格式范本
2015/05/25 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技
Golang实现可重入锁的示例代码
2022/05/25 Golang