<?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. 对C++虚函数的理解

    关于类不断被继承的过程,从整体上看,是一个从抽象到逐渐具体化的过程,基类可以是非常非常抽象的东西,而最终实例化的派生类就非常具体了. 虚函数的意义,就在于定义了一个从最早的基类到最终的派生类都可能会用 ...

  2. ThinkPhp的搭建

    一般而言,环境的搭建都是很复杂的,但是说句实话,php的环境是我见过最简单的,首先下载一个XAMPP集成软件包(这种软件包还有好多,但是我还是喜欢这个啊),然后直接安装,一路NEXT下午就ok了. 这 ...

  3. Bootstrap相关总结

    1.工具提示 Tooltips js调用显示 $('#example').tooltip( { title:'这个是一个提示', }); $('#example').tooltip('show');

  4. Android 进程常驻----native保活5.0以上方案推演过程以及代码

    正文: 上一篇我们通过父子进程间建立双管道,来监听进程死掉,经过测试,无耗电问题,无内存消耗问题,可以在设置中force close下成功拉起,也可以在获取到root权限的360/cleanmaste ...

  5. winform 对话框,保存,另存为,还有打印控件

    学习的对话框的种类: 1.打开文件对话框(OpenFileDialog) 2.保存文件对话框(SaveFileDialog) 3.字体对话框(FontDialog) 4.颜色对话框(ColorDial ...

  6. [转]让窗体不显示在Alt+Tab中

    public class MyForm : Form { protected override CreateParams CreateParams { get { const int WS_EX_AP ...

  7. 关于Markdown

    之前有接触过一点markdown,知道能生成好看的排版,只是太懒都不去看不去记那些标签 现在才发现它简单好用得有点伟大 一个在线的Markdown编辑器:https://stackedit.io/ed ...

  8. 创建XMLHttpRequest对象

    创建XMLHttpRequest对象 XMLHttpRequest对象: 用于在后台与服务器交换数据,可以在不重新加载整个页面的情况下,对页面的部分内容进行更新. 创建XMLHttpRequest对象 ...

  9. Xcode 8

    (一)Xcode8去掉多余LOG 1.打开我们的项目,进入EditScheme 2.我们在Environment Variables中添加OS_ACTIVITY_MODE=disable

  10. Java开发中经典的小实例-(输入三个数字判断三角形类型)

    import java.util.Scanner;public class threeTest {    public static void main(String[] args) {       ...