相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡(jiǎn)單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說明
- thinkPHP5框架實(shí)現(xiàn)分頁查詢功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
thinkPHP5使用laypage分頁插件實(shí)現(xiàn)列表分頁功能

一、背景
在使用thinkPHP框架做項(xiàng)目的時(shí)候,經(jīng)常會(huì)遇到對(duì)列表的內(nèi)容進(jìn)行分頁。thinkPHP框架中自帶了分頁功能,但是有缺陷。這個(gè)缺陷是每次返回每頁數(shù)據(jù)給頁面時(shí)需要重新加載頁面所需要的JS、CSS等資源。如果頁面包含的JS過多、過大,會(huì)增加流量壓力。因此,我們使用laypage插件。每次使用ajax請(qǐng)求獲取每頁的數(shù)據(jù)就可以了,不需要重復(fù)加載頁面。
二、分頁流程
如下圖所示:
流程說明:
1) 調(diào)研App.php中的函數(shù),該函數(shù)調(diào)用fetch函數(shù)。fetch函數(shù)渲染list.html.
2) list.html 調(diào)用獲取總頁數(shù)的函數(shù),并得到總頁數(shù)。
3) 獲取第一頁數(shù)據(jù)。
4)初始化laypage分頁插件。
5)點(diǎn)擊頁碼,觸發(fā)分頁查詢。
三、實(shí)現(xiàn)分頁功能相關(guān)的代碼
1、App.php Controller的代碼
//fetch渲染頁面 public function index() { return $this->fetch('list'); } //根據(jù)頁面?zhèn)魅氲捻摯a查詢數(shù)據(jù) public function getPage() { <span style="color:#FF0000;">// 獲取頁面?zhèn)魅氲捻摯a </span> $nowpage = input("page"); //每頁顯示10條數(shù)據(jù) $limits = 10; $app = new appInfo(); $page_info = $app->limit(($nowpage * $limits), $limits)->select(); // ajax 分頁輸出 $info = ['pageinfo'=>$page_info,'nowpage'=>$nowpage,'nowpage'=>$nowpage]; return json($info); } //獲取所有頁數(shù) public function getAllPage(){ try{ $count = appInfo::count(); $limits = 10; // 計(jì)算總頁面 $allpage = ceil($count / $limits); $info =['allpage'=>$allpage]; }catch (\Exception $e){ abort(500,$e->getMessage(),['result'=>TopsecGWErrer::TOPSEC_GW_ERR_NO_UNKNOWN]); } return json($info); }