PHP分页类,生成分页html字符串
<?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字符串的更多相关文章
- Yii2中自带分页类实现分页
1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: function actionFenye(){ $data = Fie ...
- php分页类代码和使用
在这要说的一点就是如果你做的分页是有搜索条件的,那么就可以用下面的代码,然后调用之后在new Page()里面把连接加进去就可以了.例如: $href="http://www.***.cn/ ...
- php分页类代码带分页样式效果(转)
php分页类代码,有漂亮的分页样式风格 时间:2016-03-16 09:16:03来源:网络 导读:不错的php分页类代码,将类文件与分页样式嵌入,实现php查询结果的精美分页,对研究php分页原理 ...
- php四个常用类封装 :MySQL类、 分页类、缩略图类、上传类;;分页例子;
Mysql类 <?php /** * Mysql类 */ class Mysql{ private static $link = null;//数据库连接 /** * 私有的构造方法 */ pr ...
- PHP简单漂亮的分页类
本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap. <?php /* * ********************************************* * @类名 ...
- CI框架分页类
分页类1.分页类参数说明 'base_url' => 指向你的分页所在的控制器类/方法的完整的 URL, 'total_rows' => 数据的总行数, 'per_page' => ...
- php大力力 [019节]php分页类的学习
2015-08-26 php大力力019.php分页类的学习 [2014]兄弟连高洛峰 PHP教程14.2.1 分页需求分析 14:18 [2014]兄弟连高洛峰 PHP教程14.2.2 分页类中分页 ...
- php+mysql分页类的入门实例
php+mysql分页类的简单代码 时间:2016-02-25 06:16:26来源:网络 导读:php+mysql分页类的简单代码,二个php分页类代码,对商品进行分页展示,当前页面数,每个页面展示 ...
- 简单实用的原生PHP分页类
一款简单实用的原生PHP分页类,分页按钮样式简洁美观,页码多的时候显示“...”,也是挺多网站用的效果 核心分页代码 include_once("config.php"); req ...
- drf偏移分页组件-游标分页-自定义过滤器-过滤器插件django-filter
drf偏移分页组件 LimitOffsetPagination 源码分析:获取参数 pahenations.py from rest_framework.pagination import Limit ...
随机推荐
- NSValue 类的使用
NSValue对象是用来存储一个C或者Objective-C数据的简单容器.它可以保存任意类型的数据int,float,char等,也可以是指pointers, structures, and obj ...
- webDriver 执行杀死浏览器进程方法
/** * 执行dos命令 * @param command */ public static void command(String command) { ...
- ImageLoader图片加载
http://blog.csdn.net/liu1164316159/article/details/38728259 转载请注明http://write.blog.csdn.net/po ...
- HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容
今天把一个.NET的网站部署到IIS上打开网页的时候出现了这个错误,刚开始以为是没有配置默认页,但是直接打开固定的页面地址也不行. 于是怀疑是.NET版本的问题,但是看了一下程序的目标框架是4.0没错 ...
- 双十一 VS 火车票(12306)
火车票开售了,又是一年,code了一年,咱们也该回顾回顾了. 还记得12306上线之初各种技术大牛给人家出方案,吐槽人家外包费用?我们来回顾回顾. 就园子里都过千篇文章来侃这事儿,请问有多少主题的文章 ...
- URi和Url格式
1.主要的区别 url一定是有scheme. uri不一定有scheme,可以是相对和绝对的.(相对是依赖环境的) 2.uri的结构(3种划分) 1)[scheme:]scheme-specific- ...
- RDCManager(远程登录工具)
1: 2: 3: 4: 5 6 写文不易,转载请注明出处:http://www.cnblogs.com/zszs/p/5662752.html
- a=av###b=bv###c=cv map键值对 (a,av) (b,bv) (c,cv)
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; impo ...
- svn使用
1 svn地址: svn://www.svn999.com/annie123.test12345 2 svn 账户: 账户使用时期:项目checkout时期 会提示键入用户名密码 3 新增文件 (1) ...
- phalcon: 多模块多表查找,多表sql
那么多模块下,如何分页的,如果直接用->from(表名),报错找不到此类,此时要引用model类的全命名空间名称如下: $builder = $this->modelsManager-&g ...