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 ...
随机推荐
- php读取大文件
高效率计算文件行数 function count_line($file) { $fp=fopen($file, "r"); $i=0; while(!feof($fp)) { // ...
- CSS ::before 和 ::after 伪元素另类用法
原文地址:http://justcoding.iteye.com/blog/2032627 CSS 有两个说不上常用的伪类 :before 和 :after,偶尔会被人用来添加些自定义格式什么的,但是 ...
- [转]解决IIS下UTF-8文件报错乱码的问题
找了两天才找到解决办法…….晕晕晕...用第二种方法解决了. 网上找到的方法都没有写这一条 If objASPError.ASPDescription > "" Then 后 ...
- BASH比较大小
- 开发一个IONIC应用的首要操作(宏观)
1.创建工程 2.搭建路由(routes.js) 3.添加控制(controller.js) 4.加载模块(app.js)
- Command调用存储过程小实例
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...
- Oracle(控制用户权限)
权限允许用户访问属于其它用户的对象或执行程序, ORACLE系统提供权限:Object 对象级.System 系统级 查看权限的数据字典: 字典名 含义 ROLE_SYS_PRIVS System p ...
- Java-密码加密
介绍两种密码加密的方法: 这两种很常见可以再百度随意找到. 1.摩斯密码:说道密码加密不得不提的方法.很是经典. 首先说一下他的对照表,直接上图. 核心思想就是替换明文密码,将字符对应的替换成-与.两 ...
- Xcode及obj-c的基础知识
1, 从简单的例程来看基本语法: 下面的代码是通过OSX-Application-Command Line Tool生成的: #import <Foundation/Foundation.h&g ...
- Android Button上的文字自动变成大写,如何解决呢?
android:textAllCaps="false"手动添加这一行,就不会有烦恼了.