# 分頁類
CodeIgniter 的分頁類非常容易使用,而且它 100% 可定制,可以通過動態的參數, 也可以通過保存在配置文件中的參數。
* [例子](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id2)
* [說明](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id3)
* [在配置文件中設置參數](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id4)
* [自定義分頁](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id5)
* [添加封裝標簽](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id6)
* [自定義第一個鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id7)
* [自定義最后一個鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id8)
* [自定義下一頁鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id9)
* [自定義上一頁鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id10)
* [自定義當前頁面鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id11)
* [自定義數字鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id12)
* [隱藏數字鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id13)
* [給鏈接添加屬性](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id14)
* [禁用 "rel" 屬性](http://codeigniter.org.cn/user_guide/libraries/pagination.html#rel)
* [類參考](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id15)
如果你還不熟悉 "分頁" 這個詞,它指的是用于你在頁面之間進行導航的鏈接。像下面這樣:
~~~
? First??<?1?2?3?4?5?>??Last ?
~~~
## [例子](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id16)
下面是一個簡單的例子,如何在你的?[控制器](http://codeigniter.org.cn/user_guide/general/controllers.html)?方法中創建分頁:
~~~
$this->load->library('pagination');
$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;
$this->pagination->initialize($config);
echo $this->pagination->create_links();
~~~
### [說明](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id17)
如上所示,$config?數組包含了你的配置參數,被傳遞到?$this->pagination->initialize()?方法。 另外還有二十幾個配置參數你可以選擇,但是最少你只需要這三個配置參數。下面是這幾個參數的含義:
* **base_url**?這是一個指向你的分頁所在的控制器類/方法的完整的 URL ,在上面的這個例子里, 它指向了一個叫 "Test" 的控制器和它的一個叫 "Page" 的方法。記住,如果你需要一個不同格式的 URL , 你可以?[重新路由](http://codeigniter.org.cn/user_guide/general/routing.html)?。
* **total_rows**?這個數字表示你需要做分頁的數據的總行數。通常這個數值是你查詢數據庫得到的數據總量。
* **per_page**?這個數字表示每個頁面中希望展示的數量,在上面的那個例子中,每頁顯示 20 個項目。
當你沒有分頁需要顯示時,create_links()?方法會返回一個空的字符串。
### [在配置文件中設置參數](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id18)
如果你不喜歡用以上的方法進行參數設置,你可以將參數保存到配置文件中。 簡單地創建一個名為 pagination.php 的文件,把 $config 數組加到這個文件中, 然后將文件保存到?application/config/pagination.php?。這樣它就可以自動被調用。 用這個方法,你不再需要使用$this->pagination->initialize?方法。
## [自定義分頁](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id19)
下面是所有的參數列表,可以傳遞給 initialization 方法來定制你喜歡的顯示效果。
**$config['uri_segment'] = 3;**
分頁方法自動檢測你 URI 的哪一段包含頁數,如果你的情況不一樣,你可以明確指定它。
**$config['num_links'] = 2;**
放在你當前頁碼的前面和后面的“數字”鏈接的數量。比方說值為 2 就會在每一邊放置兩個數字鏈接, 就像此頁頂端的示例鏈接那樣。
**$config['use_page_numbers'] = TRUE;**
默認分頁的 URL 中顯示的是你當前正在從哪條記錄開始分頁,如果你希望顯示實際的頁數,將該參數設置為 TRUE 。
**$config['page_query_string'] = TRUE;**
默認情況下,分頁類假設你使用?[URI 段](http://codeigniter.org.cn/user_guide/general/urls.html)?,并像這樣構造你的鏈接:
> [http://example.com/index.php/test/page/20](http://example.com/index.php/test/page/20)
如果你把?$config['enable_query_strings']?設置為 TRUE,你的鏈接將自動地被重寫成查詢字符串格式。 這個選項也可以被明確地設置,把$config['page_query_string']?設置為 TRUE,分頁鏈接將變成:
> [http://example.com/index.php?c=test&m=page&per_page=20](http://example.com/index.php?c=test&m=page&per_page=20)
請注意,"per_page" 是默認傳遞的查詢字符串,但也可以使用?$config['query_string_segment']?=?'你的字符串'?來配置。
**$config['reuse_query_string'] = FALSE;**
默認情況下你的查詢字符串參數會被忽略,將這個參數設置為 TRUE ,將會將查詢字符串參數添加到 URI 分段的后面 以及 URL 后綴的前面。:
~~~
http://example.com/index.php/test/page/20?query=search%term
~~~
這可以讓你混合使用?[URI 分段](http://codeigniter.org.cn/user_guide/general/urls.html)?和 查詢字符串參數,這在 3.0 之前的版本中是不行的。
**$config['prefix'] = '';**
給路徑添加一個自定義前綴,前綴位于偏移段的前面。
**$config['suffix'] = '';**
給路徑添加一個自定義后綴,后綴位于偏移段的后面。
**$config['use_global_url_suffix'] = FALSE;**
當該參數設置為 TRUE 時,會使用?**application/config/config.php**?配置文件中定義的?$config['url_suffix']?參數?**重寫**?$config['suffix']?的值。
## [添加封裝標簽](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id20)
如果你希望在整個分頁的周圍用一些標簽包起來,你可以通過下面這兩個參數:
**$config['full_tag_open'] = '';**
起始標簽放在所有結果的左側。
**$config['full_tag_close'] = '';**
結束標簽放在所有結果的右側。
## [自定義第一個鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id21)
**$config['first_link'] = 'First';**
左邊第一個鏈接顯示的文本,如果你不想顯示該鏈接,將其設置為 FALSE 。
注解
該參數的值也可以通過語言文件來翻譯。
**$config['first_tag_open'] = '';**
第一個鏈接的起始標簽。
**$config['first_tag_close'] = '';**
第一個鏈接的結束標簽。
**$config['first_url'] = '';**
可以為第一個鏈接設置一個自定義的 URL 。
## [自定義最后一個鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id22)
**$config['last_link'] = 'Last';**
右邊最后一個鏈接顯示的文本,如果你不想顯示該鏈接,將其設置為 FALSE 。
注解
該參數的值也可以通過語言文件來翻譯。
**$config['last_tag_open'] = '';**
最后一個鏈接的起始標簽。
**$config['last_tag_close'] = '';**
最后一個鏈接的結束標簽。
## [自定義下一頁鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id23)
**$config['next_link'] = '>';**
下一頁鏈接顯示的文本,如果你不想顯示該鏈接,將其設置為 FALSE 。
注解
該參數的值也可以通過語言文件來翻譯。
**$config['next_tag_open'] = '';**
下一頁鏈接的起始標簽。
**$config['next_tag_close'] = '';**
下一頁鏈接的結束標簽。
## [自定義上一頁鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id24)
**$config['prev_link'] = '<';**
上一頁鏈接顯示的文本,如果你不想顯示該鏈接,將其設置為 FALSE 。
注解
該參數的值也可以通過語言文件來翻譯。
**$config['prev_tag_open'] = '';**
上一頁鏈接的起始標簽。
**$config['prev_tag_close'] = '';**
上一頁鏈接的結束標簽。
## [自定義當前頁面鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id25)
**$config['cur_tag_open'] = '';**
當前頁鏈接的起始標簽。
**$config['cur_tag_close'] = '';**
當前頁鏈接的結束標簽。
## [自定義數字鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id26)
**$config['num_tag_open'] = '';**
數字鏈接的起始標簽。
**$config['num_tag_close'] = '';**
數字鏈接的結束標簽。
## [隱藏數字鏈接](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id27)
如果你不想顯示數字鏈接(例如你只想顯示上一頁和下一頁鏈接),你可以通過下面的代碼來阻止它顯示:
~~~
$config['display_pages'] = FALSE;
~~~
## [給鏈接添加屬性](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id28)
如果你想為分頁類生成的每個鏈接添加額外的屬性,你可以通過鍵值對設置 "attributes" 參數:
~~~
// Produces: class="myclass"
$config['attributes'] = array('class' => 'myclass');
~~~
注解
以前的通過 "anchor_class" 參數來設置 class 屬性的方法已經廢棄。
## [禁用 "rel" 屬性](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id29)
默認 rel 屬性會被自動的被添加到合適的鏈接上,如果由于某些原因,你想禁用它,你可以用下面的方法:
~~~
$config['attributes']['rel'] = FALSE;
~~~
## [類參考](http://codeigniter.org.cn/user_guide/libraries/pagination.html#id30)
classCI_Pagination
initialize([$params = array()])
參數:
* **$params**?(array) -- Configuration parameters
返回: CI_Pagination instance (method chaining)
返回類型: CI_Pagination
使用提供的參數初始化分頁類。
create_links()
返回: HTML-formatted pagination
返回類型: string
返回分頁的代碼,包含生成的鏈接。如果只有一個頁面,將返回空字符串。
- 歡迎使用 CodeIgniter
- 安裝說明
- 下載 CodeIgniter
- 安裝說明
- 從老版本升級
- 疑難解答
- CodeIgniter 概覽
- CodeIgniter 將從這里開始
- CodeIgniter 是什么?
- 支持特性
- 應用程序流程圖
- 模型-視圖-控制器
- 設計與架構目標
- 教程 - 內容提要
- 加載靜態內容
- 讀取新聞條目
- 創建新聞條目
- 結束語
- 常規主題
- CodeIgniter URL
- 控制器
- 保留名稱
- 視圖
- 模型
- 輔助函數
- 使用 CodeIgniter 類庫
- 創建類庫
- 使用 CodeIgniter 驅動器
- 創建驅動器
- 創建核心系統類
- 創建附屬類
- 鉤子 - 擴展框架核心
- 自動加載資源
- 公共函數
- 兼容性函數
- URI 路由
- 錯誤處理
- 網頁緩存
- 程序分析
- 以 CLI 方式運行
- 管理你的應用程序
- 處理多環境
- 在視圖文件中使用 PHP 替代語法
- 安全
- PHP 開發規范
- 類庫參考
- 基準測試類
- 緩存驅動器
- 日歷類
- 購物車類
- 配置類
- Email 類
- 加密類
- 加密類(新版)
- 文件上傳類
- 表單驗證類
- FTP 類
- 圖像處理類
- 輸入類
- Javascript 類
- 語言類
- 加載器類
- 遷移類
- 輸出類
- 分頁類
- 模板解析類
- 安全類
- Session 類
- HTML 表格類
- 引用通告類
- 排版類
- 單元測試類
- URI 類
- 用戶代理類
- XML-RPC 與 XML-RPC 服務器類
- Zip 編碼類
- 數據庫參考
- 數據庫快速入門: 示例代碼
- 數據庫配置
- 連接你的數據庫
- 查詢
- 生成查詢結果
- 查詢輔助函數
- 查詢構造器類
- 事務
- 數據庫元數據
- 自定義函數調用
- 數據庫緩存類
- 數據庫工廠類
- 數據庫工具類
- 數據庫驅動器參考
- 輔助函數參考
- 數組輔助函數
- 驗證碼輔助函數
- Cookie 輔助函數
- 日期輔助函數
- 目錄輔助函數
- 下載輔助函數
- 郵件輔助函數
- 文件輔助函數
- 表單輔助函數
- HTML 輔助函數
- 語言輔助函數
- Inflector 輔助函數
- 數字輔助函數
- 路徑輔助函數
- 安全輔助函數
- 表情輔助函數
- 字符串輔助函數
- 文本輔助函數
- 排版輔助函數
- URL 輔助函數
- XML 輔助函數
- 向 CodeIgniter 貢獻你的力量