tp3.2分頁功能


后台

1.利用Page類和limit方法分頁

$User = M('User'); // 實例化User對象
$count      = $User->where('status=1')->count();// 查詢滿足要求的總記錄數
$Page       = new \Think\Page($count,25);// 實例化分頁類 傳入總記錄數和每頁顯示的記錄數(25)
$show       = $Page->show();// 分頁顯示輸出
// 進行分頁數據查詢 注意limit方法的參數要使用Page類的屬性
$list = $User->where('status=1')->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('list',$list);// 賦值數據集
$this->assign('page',$show);// 賦值分頁輸出
$this->display(); // 輸出模板

2.分頁類和page方法的實現分頁

$User = M('User'); // 實例化User對象
// 進行分頁數據查詢 注意page方法的參數的前面部分是當前的頁數使用 $_GET[p]獲取
$list = $User->where('status=1')->order('create_time')->page($_GET['p'].',25')->select();
$this->assign('list',$list);// 賦值數據集
$count      = $User->where('status=1')->count();// 查詢滿足要求的總記錄數
$Page       = new \Think\Page($count,25);// 實例化分頁類 傳入總記錄數和每頁顯示的記錄數
$show       = $Page->show();// 分頁顯示輸出
$this->assign('page',$show);// 賦值分頁輸出
$this->display(); // 輸出模板

3.帶入查詢條件

如果是POST方式查詢,如何確保分頁之后能夠保持原先的查詢條件呢,我們可以給分頁類傳入參數,方法是給分頁類的parameter屬性賦值

$count      = $User->where($map)->count();// 查詢滿足要求的總記錄數
$Page       = new \Think\Page($count,25);// 實例化分頁類 傳入總記錄數和每頁顯示的記錄數
//分頁跳轉的時候保證查詢條件
foreach($map as $key=>$val) {
    $Page->parameter[$key]   =   urlencode($val);
}
$show       = $Page->show();// 分頁顯示輸出

4.分頁信息定制

我們可以對輸出的分頁樣式進行定制,分頁類Page提供了一個setConfig方法來修改默認的一些設置。例如:

 $Page->setConfig('header','個會員');
setConfig方法支持的屬性包括:
屬性 描述
header 頭部描述信息,默認值 “共 %TOTAL_ROW% 條記錄”
prev 上一頁描述信息,默認值 “<<”
next 下一頁描述信息,默認值 “>>”
first 第一頁描述信息,默認值 “1…”
last 最后一頁描述信息,默認值 “…%TOTAL_PAGE%”
theme 分頁主題描述信息,包括了上面所有元素的組合 ,設置該屬性可以改變分頁的各個單元的顯示位置,默認值是 “%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%”

其中,顯示位置的對應的關系為:

 

位置 說明
%FIRST% 表示第一頁的鏈接顯示
%UP_PAGE% 表示上一頁的鏈接顯示
%LINK_PAGE% 表示分頁的鏈接顯示
%DOWN_PAGE% 表示下一頁的鏈接顯示
%END% 表示最后一頁的鏈接顯示

 

除了改變顯示信息外,你還可以使用樣式來定義分頁的顯示效果。 這些樣式class包括:first(第一頁)、prev(上一頁)、next(下一頁)、end(最后一頁)、num(其他頁的數字)、current(當前頁)。

如果想增加分頁信息,在實例化配置類后,調用show()方法分頁顯示輸出之前加入如下代碼即可:

$Page->lastSuffix=false;
$Page->setConfig('header','<li class="rows">共<b>%TOTAL_ROW%</b>條記錄&nbsp;&nbsp;每頁<b>%LIST_ROW%</b>條&nbsp;&nbsp;第<b>%NOW_PAGE%</b>頁/共<b>%TOTAL_PAGE%</b>頁</li>');
$Page->setConfig('prev','上一頁');
$Page->setConfig('next','下一頁');
$Page->setConfig('last','末頁');
$Page->setConfig('first','首頁');
$Page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');

注:如果總分頁數(即查出來的數據分頁后的最大頁數的數字)小於分頁欄每頁顯示的頁數(在page類中定義的全局變量 $rollPage 的值),則首頁和末頁不會顯示出來(注:此處為顯示效果改成了1,即分頁數大於就會顯示首頁尾頁。如果總分頁數為1則什么分頁信息都沒有)

 public $rollPage   = 1;// 分頁欄每頁顯示的頁數

5.分頁樣式定制

<style>
    .pager span {
        background: #8FC41F;
        color: #fff;
        border: 1px solid #8FC41F;
        padding: 3px 10px;
        margin-left: 8px;
    }
    .pager a {
        border: 1px solid #666666;
        padding: 3px 10px;
        margin-left: 8px;
        text-decoration: none;
        color: #333;
        outline: none;
    }
</style>

前台:

<style>
    .pager span {
        background: #8FC41F;
        color: #fff;
        border: 1px solid #8FC41F;
        padding: 3px 10px;
        margin-left: 8px;
    }
    .pager a {
        border: 1px solid #666666;
        padding: 3px 10px;
        margin-left: 8px;
        text-decoration: none;
        color: #333;
        outline: none;
    }
</style>

前台:

<ul class="paginList pager"><!-- 分頁顯示 -->{$page}</ul>

效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM