本文實例講述了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
新聞熱點
疑難解答
圖片精選