分頁(Pagination)類別
CodeIgniter 分頁類別是一個非常簡單,並且可以讓使用者 100% 自訂個人喜好設定
假如您還不是很瞭解分頁的功能用法,那底下就是一個範例,讓您製作簡單的分頁到下一個分頁
« First < 1 2 3 4 5 > Last »
範例
底下是一個簡單的例子,教您如何在 控制器(Controller) 函數裡面建立基本分頁
$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();
注意:
在 $config 裡包含了您所設定的基本參數。上述設定的所有參數會傳送到 $this->pagination->initialize 函數裡面進行初始化。 雖然您可以設定大多數的參數,但最基本的三個參數是您必須要設定的。這裡簡單描述這三個參數的用法及意義:
- base_url 這是一個完整的 URL 路徑,包含了控制器(controller class)/函數(function)。在上面的範例中,它指向一個控制器叫 "Test" 和一個函數叫 "page"。記住,假如您需要不同的架構,你可以重新制定你的 URI。
- total_rows 這個數字用來顯示您需要做分頁的所有行數,這個數據通常是您對資料庫查詢所回傳的總筆數。
- per_page 這個數字是用來讓您顯示每個頁面所需要的項目數量,在上面的例子中,每個頁面將會顯示20個項目。
當您沒有分頁資料可以顯示的時候,create_links() 函數就會回傳空字串。
設定分頁參數
假如您不喜歡上述所說的設定方式,您可以簡單的建立 pagination.php,把 $config 參數都設定到檔案裡面,並且將檔案另存到 config/pagination.php 可以讓它自動被載入使用。使用這個方法,你不再需要使用 $this->pagination->initialize 方式載入。
自訂分頁參數
下面是分頁參數列表,您可以依照個人喜好設定參數,並且設定您喜歡的顯示效果。
$config['uri_segment'] = 3;
分頁函數會自動偵測決定您的 URI 哪個部份包含了頁數,如果你想指定不一樣的,你可以在這裡明確設定它。
$config['num_links'] = 2;
放在您目前所在頁數前面跟後面所顯示的分頁數量。舉例來說,參數設定2,就會在前面跟後面兩邊多加兩個頁數,如同此頁最頂端的例子所顯示
$config['use_page_numbers'] = TRUE;
預設會在 URI 顯示你要分頁項目的索引編號,而不是頁數。如果你比較喜歡使用頁數,將這個值設定為 TRUE 。
$config['page_query_string'] = TRUE;
在預設情況下,分頁類會假設您預設使用 URI Segments,並且建構您的連結就如同底下
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
請注意 "per_page" 是預設的分頁變數字串,然而您可以利用設定 $config['query_string_segment'] = 'your_string' 來改變您要的變數字串。
增加 Tag 標籤
如果您希望在分頁左右兩邊加上 Tag 標籤,您可以利用下面兩種參數設定。
$config['full_tag_open'] = '<p>';
此標籤是放在顯示分頁結果的左側。
$config['full_tag_close'] = '</p>';
此標籤是放在顯示分頁結果的右側。
自訂起始分頁連結名稱
$config['first_link'] = 'First';
您希望在分頁左邊顯示"第一頁"的名稱。如果你不想讓連結呈現,你可以將值設為 FALSE
$config['first_tag_open'] = '<div>';
第一頁連結左邊標籤。
$config['first_tag_close'] = '</div>';
第一頁連結右邊標籤。
自訂結束分頁連結名稱
$config['last_link'] = 'Last';
您希望在分頁右邊顯示"最後一頁"的名稱。如果你不想讓連結呈現,你可以將值設為 FALSE
$config['last_tag_open'] = '<div>';
最後一頁連結左邊標籤。
$config['last_tag_close'] = '</div>';
最後一頁連結右邊標籤。
自訂"下一頁"連結名稱
$config['next_link'] = '>';
您希望在分頁中顯示"下一頁"的名稱。如果你不想讓連結呈現,你可以將值設為 FALSE
$config['next_tag_open'] = '<div>';
下一頁連結左邊標籤。
$config['next_tag_close'] = '</div>';
下一頁連結右邊標籤。
自訂"上一頁"連結名稱
$config['prev_link'] = '<';
您希望在分頁中顯示"上一頁"的名稱。如果你不想讓連結呈現,你可以將值設為 FALSE
$config['prev_tag_open'] = '<div>';
上一頁連結的左邊標籤。
$config['prev_tag_close'] = '</div>';
上一頁連結的右邊標籤。
自訂"目前頁面"連結名稱
$config['cur_tag_open'] = '<b>';
目前頁面左邊標籤。
$config['cur_tag_close'] = '</b>';
目前頁面右邊標籤。
自訂分頁數字連結
$config['num_tag_open'] = '<div>';
分頁數字連結左邊標籤。
$config['num_tag_close'] = '</div>';
分頁數字連結右邊標籤。
隱藏頁數
如果你不想顯示頁數,例如你只想顯示上一頁與下一頁,你可以加入:
$config['display_pages'] = FALSE;
加入 class 屬性
如果你想要為每個分頁類別的連結加入 class,你可以設定 "anchor_class" 為你要的 class