PHP分页类,生成分页html字符串

  1 <?php
  2 namespace Common\Common;
  3
  4 /**
  5  * 该Page类主要有两个方法:showPageString(), showPageStringAsAJAX()
  6  *
  7  * showPageString():主要用于生成普通的超链接的html分页代码,页面也会随之刷新。
  8  *
  9  * showPageStringAsAJAX():主要用于利用ajax发送异步请求,生成带有js函数和参数的html分页代码。
 10  *
 11  * @author Fly 2016/09/25
 12  *
 13  */
 14 class Page{
 15
 16     /**
 17      * 通用的分页html字符串
 18      *
 19      * @param int $currentPage    当前页面
 20      * @param int $pageSize    页面条数
 21      * @param int $totalCount    总条数
 22      *
 23      * @return string $output    返回的分页Html字符串
 24      */
 25     public function showPageString($currentPage, $pageSize, $totalCount){
 26         $redirectTo = "/Admin/Score/loadOrderInfo";//分页每次跳转的地址
 27         $pageSize = $pageSize == 0 ? 3 : $pageSize;
 28
 29         $totalPages = floor(($totalCount + $pageSize - 1) / $pageSize); //总页数
 30         $output = ‘<nav><ul class="pagination">‘;//输出字符串
 31         if ($totalPages > 1)
 32         {
 33             //if (currentPage != 1)
 34             {//处理首页连接
 35                 $output .= "<li><a  href=".$redirectTo."?pageIndex=1&pageSize=".$pageSize."‘>首页</a></li>";
 36
 37             }
 38             if ($currentPage > 1)
 39             {//处理上一页的连接
 40                 $output .= "<li><a  href=‘".$redirectTo."?pageIndex=".($currentPage -1)."&pageSize=".$pageSize."‘>上一页</a></li>";
 41             }
 42             else
 43             {
 44                 // output.Append("<span class=‘pageLink‘>上一页</span>");
 45             }
 46
 47             $output .= " ";
 48             $currint = 5;
 49             for ($i = 0; $i <= 10; $i++)
 50             {//一共最多显示10个页码,前面5个,后面5个
 51                 if (($currentPage + $i - $currint) >= 1 && ($currentPage + $i - $currint) <= $totalPages)
 52                 {
 53                     if ($currint == $i)
 54                     {//当前页处理
 55                         //output.Append(string.Format("[{0}]", currentPage));
 56                         $output .= "<li class=‘active‘><a  href=‘javascript:void(0);‘>$currentPage</a></li>";
 57                     }
 58                     else
 59                     {//一般页处理
 60                         $output .= "<li><a  href=‘".$redirectTo."?pageIndex=".($currentPage + $i - $currint)."&pageSize=".$pageSize."‘>".($currentPage + $i - $currint)."</a></li>";
 61                     }
 62                 }
 63                 $output .= " ";
 64             }
 65             if ($currentPage < $totalPages)
 66             {//处理下一页的链接
 67                 $output .= "<li><a  href=‘".$redirectTo."?pageIndex=".($currentPage + 1)."&pageSize=".$pageSize."‘>下一页</a></li>";
 68             }
 69             else
 70             {
 71                 //output.Append("<span class=‘pageLink‘>下一页</span>");
 72             }
 73             $output .=" ";
 74             if ($currentPage != $totalPages)
 75             {
 76                 $output .= "<li><a  href=‘".$redirectTo."?pageIndex=".$totalPages."&pageSize=".$pageSize."‘>末页</a></li>";
 77             }
 78             $output .= "</ul></nav>";
 79         }
 80         //$output .= "第".$currentPage."页 / 共".$totalPages."页";//这个统计加不加都行
 81
 82         return $output;
 83     }
 84
 85     /**
 86      * 利用ajax的异步分页
 87      *
 88      * @param string $jumpFun    对应js的function名字
 89      * @param int $currentPage    当前页面
 90      * @param int $pageSize    页面条数
 91      * @param int $totalCount    总条数
 92      *
 93      * @return    string    $output    返回的分页Html字符串
 94      */
 95     public function showPageStringAsAJAX( $jumpFun, $currentPage, $pageSize, $totalCount){
 96
 97         $pageSize = $pageSize == 0 ? 3 : $pageSize;
 98
 99         $totalPages = floor(($totalCount + $pageSize - 1) / $pageSize); //总页数
100         $output = ‘<nav><ul class="pagination pagination-lg">‘;//输出字符串
101         if ($totalPages > 1)
102         {
103             //if (currentPage != 1)
104             {//处理首页连接
105                 $output .= "<li><a class=‘pageLink‘ href=‘javascript:void(0);‘  onclick=‘".$jumpFun."(1,".$pageSize.")‘>首页</a></li>";
106
107             }
108             if ($currentPage > 1)
109             {//处理上一页的连接
110                 $output .= "<li><a href=‘javascript:void(0);‘ onclick=‘".$jumpFun."(".($currentPage - 1).", ".$pageSize.")‘>上一页</a></li>";
111             }
112             else
113             {
114                 // output.Append("<span class=‘pageLink‘>上一页</span>");
115             }
116
117             $output .= " ";
118             $currint = 5;
119             for ($i = 0; $i <= 10; $i++)
120             {//一共最多显示10个页码,前面5个,后面5个
121                 if (($currentPage + $i - $currint) >= 1 && ($currentPage + $i - $currint) <= $totalPages)
122                 {
123                     if ($currint == $i)
124                     {//当前页处理
125                         //output.Append(string.Format("[{0}]", currentPage));
126                         $output .= "<li class=‘active‘><a  href=‘javascript:void(0);‘>$currentPage</a></li>";
127                     }
128                     else
129                     {//一般页处理
130                         $output .= "<li><a  href=‘javascript:void(0);‘ onclick=‘".$jumpFun."(".($currentPage + $i - $currint).",".$pageSize.")‘>".($currentPage + $i - $currint)."</a></li>";
131                     }
132                 }
133                 $output .= " ";
134             }
135             if ($currentPage < $totalPages)
136             {//处理下一页的链接
137                 $output .= "<li><a  href=‘javascript:void(0);‘ onclick=‘".$jumpFun."(".($currentPage + 1).",".$pageSize.")‘>下一页</a></li>";
138             }
139             else
140             {
141                 //output.Append("<span class=‘pageLink‘>下一页</span>");
142             }
143             $output .=" ";
144             if ($currentPage != $totalPages)
145             {
146                 //处理末页的链接
147                 $output .= "<li><a  href=‘javascript:void(0);‘ onclick=‘".$jumpFun."(".$totalPages.", ".$pageSize.")‘>末页</a></li>";
148             }
149             $output .= "</ul></nav>";
150         }
151         //$output .= "第".$currentPage."页 / 共".$totalPages."页";//这个统计加不加都行
152
153         return $output;
154     }
155
156 }
时间: 2024-10-14 09:00:05

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

Yii2中自带分页类实现分页

转 http://www.cnblogs.com/gyrgyr/p/5249392.html 1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: function actionFenye(){        $data = Field::find();  //Field为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写        $pages = n

thinkphp3.2数组调用tp分页类进行分页

先上function中封装的函数 <?php function get_page($arr,$p,$pageSize) { import("Think.Page"); //导入分页类 $count = count($arr); $Page = new Think\Page($count,$pageSize); $start=($p- 1) *$pageSize; $length= $pageSize; $page_count=ceil($count/$pageSize); $cu

2015-08-26 php大力力019.php分页类的学习

2015-08-26 php大力力019.php分页类的学习 [2014]兄弟连高洛峰 PHP教程14.2.1 分页需求分析 14:18 [2014]兄弟连高洛峰 PHP教程14.2.2 分页类中分页的编写 19:10 [2014]兄弟连高洛峰 PHP教程14.2.3 分页类中列表页的编写 28:10 [2014]兄弟连高洛峰 PHP教程14.2.4 分页类的优化 23:36 [2014]兄弟连高洛峰 PHP教程14.2.5 <细说PHP>分页类的使用  15:26 其它: jQuery Aj

PHP简单漂亮的分页类

本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap. <?php /* * ********************************************* * @类名:   page * @参数:   $myde_total - 总记录数 *          $myde_size - 一页显示的记录数 *          $myde_page - 当前页 *          $myde_url - 获取当前的url * @功能:   分页实现 * @作者:   

分页类 完美

最近项目用到一分页类,网上找了半天 ,结果 没有包含对0的处理,也就是传进来的 数据为0时,算法会出错.索性自己 写了一个分页类,记录了下来,希望能帮助有需要的人. import java.util.List; /** * * @author limh * */ public class Pager { private int total_page; // 总页数 private int total_count; // 总记录数 private int current_page; // 当前页

php之分页类代码

/* 思路 1.把地址栏的URL获取 2.分析URL中的query部分--就是?后面传参数的部分 3.query部分分析成数组 4.把数组中的page单元,+1,-1,形成2个新的数组 5.再把新数组拼接成query部分,合成上一页,下一页连接地址 */ //分页类 class Page { public $total; //全部条数,从数据库取出 public $prePage = 10; //每页的条数 protected $curr= 1; //默认当前页码 public function

Django 自定义分页类

分页类代码: class Page(object): ''' 自定义分页类 可以实现Django ORM数据的的分页展示 输出HTML代码: 使用说明: from utils import mypage page_obj = mypage.Page(total_num, current_page, 'publisher_list') publisher_list = data[page_obj.data_start:page_obj.data_end] page_html = page_obj.

php分页类

<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr

thinkphp简洁、美观、靠谱的分页类

废话不多说先上图预览下:即本博客的分页: 这个分页类是在thinkphp框架内置的分页类的基础上修改而来: 原分页类的一些设计,在实际运用中感觉不是很方便: 1:只有一页内容时不显示分页: 2:原分页类在当前页是第一页和最后一页的时候,不显示第一页和最后一页的按钮: 3:分页数比较少时不显示首页和末页按钮: 4:包裹分页内容的父级div没有class: 针对以上问题逐一进行了修改成如下: 1:如果没有数据不显示分页,如果有一页及以上内容即显示分页: 2:默认就显示第一页和最后一页按钮,但是在当前

分页类

<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr