本文實例講述了CI分頁類首頁、尾頁不顯示的解決方法。分享給大家供大家參考,具體如下:
看了下手冊說,每次都要重新去寫一次呢些$config,可以新建一個文件放到config文件夾下面,考慮了下,config這個文件夾系統會自動加載,也就是說不管你訪問什麼頁面這文件夾裡面的所有信息都會被加載,所以,要想在這個文件裡面去寫就需要寫方法,這樣即使加載如果不去加載也是沒有關系的。本人沒有沿用手冊上的說法做。
我的思路:既然我們是在CI這框架下寫的東西,而且每個控制器都會引入父類CI_Controller這個類,所有我就在這個類中創建了一個方法,名page代碼如下:
public function page($url,$total,$pre,$status=TRUE){ $this->load->library('pagination'); $config['base_url'] = $url; $config['total_rows'] = $total; $config['per_page'] = $pre; $config['page_query_string'] = $status; $config['first_link'] = 'First';//首頁 $config['first_tag_open'] = ''; $config['first_tag_close'] = ''; $config['last_link'] = 'Last';//尾頁 $config['last_tag_open'] = ''; $config['last_tag_close'] = ''; $this->pagination->initialize($config); $page_list = $this->pagination->create_links(); return $page_list; }
參數說明,$url: 當前需要使用分頁的地址。 $total:總數。 $pre:每頁顯示的數量 $status默認是true 傳page以&page=1 的方式,如果修改成false則已page/1的方式顯示。
然後直接在你的控制器中如下使用即可
$page_list = $this->page("http://XXX.XXXX.com/XXX/XXX",總數,頁顯示數量); //分頁
這樣既可。
tips:系統自帶的傳值形參不叫page而是pre_page好像,忘了,由於參數過長,你就在 根目錄--》system-->libraries--》Pagination.php裡面 找到var $query_string_segment ="形參";這裡修改page即可。
測試是發現如果按照上面的寫法,首頁和尾頁不顯示的原因:你的數據量太少了,分頁數據至少在4頁以上才會出現 首頁這個字樣,但是我們可以修改,這裡我設定為3頁才顯示,則也去這個 pagination.php文件中找到
var $num_links = 2;這裡默認是2也就是第四頁才顯示,修改成1 ,注意,這裡最小只能修改成1,如果你想在任何情況下都顯示則需要修改代碼,找到這段代碼:
if ($this->first_link !== FALSE AND $this->cur_page > ($this->num_links + 1))
修改將and 後面的都去掉即可,因為and後面就是限定條件,說明下:$this->cur_page表示當前頁, $this->num_links就是要顯示在什麼時候才顯示的,還有其他代碼這裡就不說明了,自己查找下問啥$num_links不能設置為0
更多關於CodeIgniter相關內容感興趣的讀者可查看本站專題:《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《php日期與時間用法總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家基於CodeIgniter框架的PHP程序設計有所幫助。