<?php
namespace Common\Common; /**
* 该Page类主要有两个方法:showPageString(), showPageStringAsAJAX()
*
* showPageString():主要用于生成普通的超链接的html分页代码,页面也会随之刷新。
*
* showPageStringAsAJAX():主要用于利用ajax发送异步请求,生成带有js函数和参数的html分页代码。
*
* @author Fly 2016/09/25
*
*/
class Page{ /**
* 通用的分页html字符串
*
* @param int $currentPage 当前页面
* @param int $pageSize 页面条数
* @param int $totalCount 总条数
*
* @return string $output 返回的分页Html字符串
*/
public function showPageString($currentPage, $pageSize, $totalCount){
$redirectTo = "/Admin/Score/loadOrderInfo";//分页每次跳转的地址
$pageSize = $pageSize == 0 ? 3 : $pageSize; $totalPages = floor(($totalCount + $pageSize - 1) / $pageSize); //总页数
$output = '<nav><ul class="pagination">';//输出字符串
if ($totalPages > 1)
{
//if (currentPage != 1)
{//处理首页连接
$output .= "<li><a href=".$redirectTo."?pageIndex=1&pageSize=".$pageSize."'>首页</a></li>"; }
if ($currentPage > 1)
{//处理上一页的连接
$output .= "<li><a href='".$redirectTo."?pageIndex=".($currentPage -1)."&pageSize=".$pageSize."'>上一页</a></li>";
}
else
{
// output.Append("<span class='pageLink'>上一页</span>");
} $output .= " ";
$currint = 5;
for ($i = 0; $i <= 10; $i++)
{//一共最多显示10个页码,前面5个,后面5个
if (($currentPage + $i - $currint) >= 1 && ($currentPage + $i - $currint) <= $totalPages)
{
if ($currint == $i)
{//当前页处理
//output.Append(string.Format("[{0}]", currentPage));
$output .= "<li class='active'><a href='javascript:void(0);'>$currentPage</a></li>";
}
else
{//一般页处理
$output .= "<li><a href='".$redirectTo."?pageIndex=".($currentPage + $i - $currint)."&pageSize=".$pageSize."'>".($currentPage + $i - $currint)."</a></li>";
}
}
$output .= " ";
}
if ($currentPage < $totalPages)
{//处理下一页的链接
$output .= "<li><a href='".$redirectTo."?pageIndex=".($currentPage + 1)."&pageSize=".$pageSize."'>下一页</a></li>";
}
else
{
//output.Append("<span class='pageLink'>下一页</span>");
}
$output .=" ";
if ($currentPage != $totalPages)
{
$output .= "<li><a href='".$redirectTo."?pageIndex=".$totalPages."&pageSize=".$pageSize."'>末页</a></li>";
}
$output .= "</ul></nav>";
}
//$output .= "第".$currentPage."页 / 共".$totalPages."页";//这个统计加不加都行 return $output;
} /**
* 利用ajax的异步分页
*
* @param string $jumpFun 对应js的function名字
* @param int $currentPage 当前页面
* @param int $pageSize 页面条数
* @param int $totalCount 总条数
*
* @return string $output 返回的分页Html字符串
*/
public function showPageStringAsAJAX( $jumpFun, $currentPage, $pageSize, $totalCount){ $pageSize = $pageSize == 0 ? 3 : $pageSize; $totalPages = floor(($totalCount + $pageSize - 1) / $pageSize); //总页数
$output = '<nav><ul class="pagination pagination-lg">';//输出字符串
if ($totalPages > 1)
{
//if (currentPage != 1)
{//处理首页连接
$output .= "<li><a class='pageLink' href='javascript:void(0);' onclick='".$jumpFun."(1,".$pageSize.")'>首页</a></li>"; }
if ($currentPage > 1)
{//处理上一页的连接
$output .= "<li><a href='javascript:void(0);' onclick='".$jumpFun."(".($currentPage - 1).", ".$pageSize.")'>上一页</a></li>";
}
else
{
// output.Append("<span class='pageLink'>上一页</span>");
} $output .= " ";
$currint = 5;
for ($i = 0; $i <= 10; $i++)
{//一共最多显示10个页码,前面5个,后面5个
if (($currentPage + $i - $currint) >= 1 && ($currentPage + $i - $currint) <= $totalPages)
{
if ($currint == $i)
{//当前页处理
//output.Append(string.Format("[{0}]", currentPage));
$output .= "<li class='active'><a href='javascript:void(0);'>$currentPage</a></li>";
}
else
{//一般页处理
$output .= "<li><a href='javascript:void(0);' onclick='".$jumpFun."(".($currentPage + $i - $currint).",".$pageSize.")'>".($currentPage + $i - $currint)."</a></li>";
}
}
$output .= " ";
}
if ($currentPage < $totalPages)
{//处理下一页的链接
$output .= "<li><a href='javascript:void(0);' onclick='".$jumpFun."(".($currentPage + 1).",".$pageSize.")'>下一页</a></li>";
}
else
{
//output.Append("<span class='pageLink'>下一页</span>");
}
$output .=" ";
if ($currentPage != $totalPages)
{
//处理末页的链接
$output .= "<li><a href='javascript:void(0);' onclick='".$jumpFun."(".$totalPages.", ".$pageSize.")'>末页</a></li>";
}
$output .= "</ul></nav>";
}
//$output .= "第".$currentPage."页 / 共".$totalPages."页";//这个统计加不加都行 return $output;
} }

PHP分页类,生成分页html字符串的更多相关文章

  1. Yii2中自带分页类实现分页

    1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: function actionFenye(){        $data = Fie ...

  2. php分页类代码和使用

    在这要说的一点就是如果你做的分页是有搜索条件的,那么就可以用下面的代码,然后调用之后在new Page()里面把连接加进去就可以了.例如: $href="http://www.***.cn/ ...

  3. php分页类代码带分页样式效果(转)

    php分页类代码,有漂亮的分页样式风格 时间:2016-03-16 09:16:03来源:网络 导读:不错的php分页类代码,将类文件与分页样式嵌入,实现php查询结果的精美分页,对研究php分页原理 ...

  4. php四个常用类封装 :MySQL类、 分页类、缩略图类、上传类;;分页例子;

    Mysql类 <?php /** * Mysql类 */ class Mysql{ private static $link = null;//数据库连接 /** * 私有的构造方法 */ pr ...

  5. PHP简单漂亮的分页类

    本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap. <?php /* * ********************************************* * @类名 ...

  6. CI框架分页类

    分页类1.分页类参数说明 'base_url' => 指向你的分页所在的控制器类/方法的完整的 URL, 'total_rows' => 数据的总行数, 'per_page' => ...

  7. php大力力 [019节]php分页类的学习

    2015-08-26 php大力力019.php分页类的学习 [2014]兄弟连高洛峰 PHP教程14.2.1 分页需求分析 14:18 [2014]兄弟连高洛峰 PHP教程14.2.2 分页类中分页 ...

  8. php+mysql分页类的入门实例

    php+mysql分页类的简单代码 时间:2016-02-25 06:16:26来源:网络 导读:php+mysql分页类的简单代码,二个php分页类代码,对商品进行分页展示,当前页面数,每个页面展示 ...

  9. 简单实用的原生PHP分页类

    一款简单实用的原生PHP分页类,分页按钮样式简洁美观,页码多的时候显示“...”,也是挺多网站用的效果 核心分页代码 include_once("config.php"); req ...

  10. drf偏移分页组件-游标分页-自定义过滤器-过滤器插件django-filter

    drf偏移分页组件 LimitOffsetPagination 源码分析:获取参数 pahenations.py from rest_framework.pagination import Limit ...

随机推荐

  1. JavaScript打印正倒直线

    做了一个作业,用JavaScript打印正倒直线,突然觉得自己还是逻辑有待加强训练啊 document.write("<h3>打印倒正金字塔直线</h3>" ...

  2. git使用ssh密钥

    1.查看本地是否有密钥对,如果存在就删除cd ~/.sshid_dsa id_dsa.pub 2.重新生成密钥对ssh-keygen -t rsa -C "your_email@yourem ...

  3. UNIX网络编程卷1 第一章 简介 读书笔记。

    基本没讲什么,一点点计算机网络发展史,一点点socket()简单介绍,最重要的是1.3节协议无关性. 协议无关性: 贯穿整本书的一个重要特性,他主要强调的是 socket是网络协议无关的编程接口. s ...

  4. [原]__FILE__宏

    在vs中__FILE__宏代表了当前文件,如果有/FC那么__FILE__代表了当前文件的全路径!否则只表示当前文件名   参考 https://msdn.microsoft.com/en-us/li ...

  5. POSTMAN as debugger for integration APPs

    Chrome Menu: Window > Extensions > Postman - REST Client 0.8.4.10 起个标题,有空总结一下一个经验,关于Netsuite i ...

  6. CentOS系统启动流程

    CentOS系统启动流程 POST --> Boot Sequence(BIOS) --> Boot Loader(MBR) --> kernel(ramdisk) --> r ...

  7. JQuery下focus()无法自动获取焦点的处理方法 jquery如何使文本框获得焦点

    今天遇见这么一个小小的问题,就是文本框中需要输入内容才可以提交,如果没有输入就提示并使该文本框获得焦点! 这么一个简单的事情如果没有使用 jQuery的话 是不是对象.focus()就可以了, Jav ...

  8. Servlet开发详解

    一.Servlet简介 Servlet是sun公司提供的一门用于动态web资源的技术 sun公司在其API中提供了一个Servlet接口,用户若想开发一个动态web资源,需要完成两个步骤: 编写一个J ...

  9. P与NP问题

    Polynomial Nondeterministic Polynomial P问题: 一个问题可以在多项式时间复杂度内解决 NP问题: 一个问题可以在多项式时间内证实或者证伪 NP-Hard问题: ...

  10. hdu4273Rescue(三维凸包重心)

    链接 模板题已不叫题.. 三维凸包+凸包重心+点到平面距离(体积/点积)  体积-->混合积(先点乘再叉乘) #include <iostream> #include<cstd ...