本文實(shí)例講述了CI分頁類首頁、尾頁不顯示的解決方法。分享給大家供大家參考,具體如下:
看了下手冊(cè)說,每次都要重新去寫一次呢些$config,可以新建一個(gè)文件放到config文件夾下面,考慮了下,config這個(gè)文件夾系統(tǒng)會(huì)自動(dòng)加載,也就是說不管你訪問什么頁面這文件夾里面的所有信息都會(huì)被加載,所以,要想在這個(gè)文件里面去寫就需要寫方法,這樣即使加載如果不去加載也是沒有關(guān)系的。本人沒有沿用手冊(cè)上的說法做。
我的思路:既然我們是在CI這框架下寫的東西,而且每個(gè)控制器都會(huì)引入父類CI_Controller這個(gè)類,所有我就在這個(gè)類中創(chuàng)建了一個(gè)方法,名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;}參數(shù)說明,$url: 當(dāng)前需要使用分頁的地址。 $total:總數(shù)。 $pre:每頁顯示的數(shù)量 $status默認(rèn)是true 傳page以&page=1 的方式,如果修改成false則已page/1的方式顯示。
然后直接在你的控制器中如下使用即可
$page_list = $this->page("http://XXX.XXXX.com/XXX/XXX",總數(shù),頁顯示數(shù)量);//分頁這樣既可。
tips:系統(tǒng)自帶的傳值形參不叫page而是pre_page好像,忘了,由于參數(shù)過長(zhǎng),你就在 根目錄--》system-->libraries--》Pagination.php里面 找到var $query_string_segment ="形參";這里修改page即可。
測(cè)試是發(fā)現(xiàn)如果按照上面的寫法,首頁和尾頁不顯示的原因:你的數(shù)據(jù)量太少了,分頁數(shù)據(jù)至少在4頁以上才會(huì)出現(xiàn) 首頁這個(gè)字樣,但是我們可以修改,這里我設(shè)定為3頁才顯示,則也去這個(gè) pagination.php文件中找到
var $num_links = 2;這里默認(rèn)是2也就是第四頁才顯示,修改成1 ,注意,這里最小只能修改成1,如果你想在任何情況下都顯示則需要修改代碼,找到這段代碼:
if ($this->first_link !== FALSE AND $this->cur_page > ($this->num_links + 1))
修改將and 后面的都去掉即可,因?yàn)閍nd后面就是限定條件,說明下:$this->cur_page表示當(dāng)前頁, $this->num_links就是要顯示在什么時(shí)候才顯示的,還有其他代碼這里就不說明了,自己查找下問啥$num_links不能設(shè)置為0
新聞熱點(diǎn)
疑難解答
圖片精選