我們要實現如下圖分頁效果:
這個分頁類是在thinkphp框架內置的分頁類的基礎上修改而來;
原分頁類的一些設計,在實際運用中感覺不是很方便;
1、只有一頁內容時不顯示分頁;
2、原分頁類在當前頁是第一頁和最后一頁的時候,不顯示第一頁和最后一頁的按鈕;
3、分頁數比較少時不顯示首頁和末頁按鈕;
4、包裹分頁內容的父級p沒有html' target='_blank'>class;
5、針對以上問題逐一進行了修改成如下;
6、如果沒有數據不顯示分頁,如果有一頁及以上內容即顯示分頁;
7、默認就顯示第一頁和最后一頁按鈕,但是在當前頁是第一頁和最后一頁的時候按鈕點擊無效果;
8、默認就顯示首頁和末頁按鈕;
9、為包裹分頁內容的父級p添加名為page的class;
顯示總共查出的內容條數;
示例環境:thinkphp3.2.3;
分頁類目錄:/Thinkphp/Library/Org/Bjy/Page.class.php
分頁類代碼如下:
?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]// +----------------------------------------------------------------------// | Copyright (c) 2006-2014 http://thinkVeVb.com All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: 麥當苗兒 [email protected] http://www.zjzit.cn // +---------------------------------------------------------------------- * PHP分頁類 * 修改者:白俊遙 * 日 期:2015.5.10 * 郵 箱:[email protected] * 博 客:http://baijunyao.comnamespace Org/Bjy;class Page{ public $firstRow; // 起始行數 public $listRows; // 列表每頁顯示行數 public $parameter; // 分頁跳轉時要帶的參數 public $totalRows; // 總行數 public $totalPages; // 分頁總頁面數 public $rollPage = 5;// 分頁欄每頁顯示的頁數 public $lastSuffix = true; // 最后一頁是否顯示總頁數 private $p = p //分頁參數名 private $url = //當前鏈接URL private $nowPage = 1; // 分頁顯示定制 private $config = array( header = span >分頁類調用:
$count=$this- where($where)- count();$page=new /Org/Bjy/Page($count,$limit);$list=$this- where($where)- order( addtime desc )- limit($page- firstRow. , .$page- listRows)- select();$show=$page- show();分頁類css
.b-page { background: #fff; box-shadow: 0px 1px 2px 0px #E2E2E2;.page { width: 100%; padding: 30px 15px; background: #FFF; text-align: center; overflow: hidden;.page .first,.page .prev,.page .current,.page .num,.page .current,.page .next,.page .end { padding: 8px 16px; margin: 0px 5px; display: inline-block; color: #008CBA; border: 1px solid #F2F2F2; border-radius: 5px;.page .first:hover,.page .prev:hover,.page .current:hover,.page .num:hover,.page .current:hover,.page .next:hover,.page .end:hover { text-decoration: none; background: #F8F5F5;.page .current { background-color: #008CBA; color: #FFF; border-radius: 5px; border: 1px solid #008CBA;.page .current:hover { text-decoration: none; background: #008CBA;.page .not-allowed { cursor: not-allowed;}分頁類的使用方法和原thinkphp相同;具體參考:thinkphp手冊-數據分頁(http://document.thinkVeVb.com/manual_3_2.html#data_page)
以上就是thinkphp如何實現分頁效果?分頁類的編寫與使用(代碼示例)的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答