PHP CodeIgniter分頁(yè)實(shí)例及多條件查詢解決方案(推薦)
最近在用CI框架的時(shí)候,用了CI的分頁(yè)類,以前是用前端整分頁(yè),這次干脆用用框架自帶的,自己這個(gè)健忘的腦袋,還是記錄一下吧。
因?yàn)轫?yè)面中有條件篩選的表單,所以想要完成的效果就是,輸入條件后,分頁(yè)跳轉(zhuǎn)之后能維持所輸入的條件。想了一下,自己的思路如下代碼吧。
controller 代碼
class Monitors extends CI_Controller { public function warning(){ $config= array(); $config['per_page'] = 15; //每頁(yè)顯示的數(shù)據(jù)數(shù) $current_page = intval($this->input->get("per_page")); //獲取當(dāng)前分頁(yè)頁(yè)碼數(shù) $status=$this->input->get("filter-status",TRUE); $level=$this->input->get('filter-level',TRUE); $timestamp=$this->input->get('filter-timestamp',TRUE); $all = $this->monitors_m->getAllData($current_page,$config['per_page'],$status,$timestamp,$level); //這里返回的有總條數(shù)和具體的數(shù)據(jù),根據(jù)自己的情況略加修改即可 $data['allevent'] = $all['content']; $config['total_rows'] = $all['count'];//總條數(shù) $config['num_links'] = 3;//頁(yè)碼連接數(shù) $config['use_page_numbers'] = TRUE; $config['page_query_strings'] = TRUE;//關(guān)鍵配置 $config['base_url'] = base_url().'index.php/monitors/warning?'&filter-status='.$status.'&filter-level='.$level.'&filter-timestamp='.$timestamp;//關(guān)鍵配置 $this->load->library('pagination');//加載ci pagination類 $this->pagination->initialize($config); $data['page'] = $this->pagination->create_links();//關(guān)鍵代碼 $this->load->view("monitors_v",$data); }
關(guān)鍵配置參數(shù)
$config[‘page_query_string']
如果設(shè)置成true,則url則是”index.php/monitors/warning?per_page=20”這樣的
【注】”per_page” 是默認(rèn)傳遞的查詢字符串,但也可以使用 $config[‘query_string_segment'] = ‘你的字符串' 來(lái)配置
在我的方案中,設(shè)置為T(mén)RUE,當(dāng)然TRUE是默認(rèn)值,不管也可以;
$config[‘base_url']
一開(kāi)始只是設(shè)置為以下這種情況的時(shí)候,在某一頁(yè)進(jìn)行條件篩選是可以的,但是跳轉(zhuǎn)后由于刷新的問(wèn)題條件又沒(méi)有了。
$config['base_url'] = base_url().'index.php/monitors/warning;
采用以下的方式即可,吼吼吼
$status=$this->input->get("filter-status",TRUE); $level=$this->input->get('filter-level',TRUE); $timestamp=$this->input->get('filter-timestamp',TRUE); $config['base_url'] = base_url().'index.php/monitors/warning?'&filter-status='.$status.'&filter-level='.$level.'&filter-timestamp='.$timestamp;//關(guān)鍵配置
view頁(yè)面代碼
就一句話,在你需要放置分頁(yè)元素的地方加上這樣一句就行,這里的$page變量就是在controller里存進(jìn)去的$this->pagination->create_links();
<?php echo $page?>
設(shè)置分頁(yè)樣式
這里采用的是bootstrap的樣式
$config['first_link'] = "<<";//首頁(yè) $config['prev_link'] = "<";//上一頁(yè) $config['next_link'] = ">";//下一頁(yè) $config['last_link'] = ">>";//尾頁(yè) $config['full_tag_open'] = '<ul class="pagination pagination-split">'; $config['full_tag_close'] = '</ul>'; $config['first_tag_open'] = '<li>';//第一個(gè)鏈接的起始標(biāo)簽。 $config['first_tag_close'] = '</li>';//第一個(gè)鏈接的結(jié)束標(biāo)簽。 $config['next_tag_open'] = '<li>';//下一頁(yè)鏈接的起始標(biāo)簽。 $config['next_tag_close'] = '</li>';//下一頁(yè)鏈接的結(jié)束標(biāo)簽。 $config['prev_tag_open'] = '<li>';//上一頁(yè)鏈接的起始標(biāo)簽。 $config['prev_tag_close'] = '</li>';//上一頁(yè)鏈接的結(jié)束標(biāo)簽。 $config['cur_tag_open'] = '<li class="active"><a>'; $config['cur_tag_close'] = '</a></li>';//當(dāng)前頁(yè)鏈接的結(jié)束標(biāo)簽。 $config['num_tag_open'] = '<li>';//數(shù)字鏈接的起始標(biāo)簽。 $config['num_tag_close'] = '</li>';//數(shù)字鏈接的結(jié)束標(biāo)簽。
以上所述是小編給大家介紹的PHP CodeIgniter分頁(yè)實(shí)例及多條件查詢解決方案,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的,在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- CI框架常用經(jīng)典操作類總結(jié)(路由,偽靜態(tài),分頁(yè),session,驗(yàn)證碼等)
- CI框架(ajax分頁(yè),全選,反選,不選,批量刪除)完整代碼詳解
- Codeigniter(CI)框架分頁(yè)函數(shù)及相關(guān)知識(shí)
- CodeIgniter分頁(yè)類pagination使用方法示例
- codeigniter實(shí)現(xiàn)get分頁(yè)的方法
- Codeigniter框架實(shí)現(xiàn)獲取分頁(yè)數(shù)據(jù)和總條數(shù)的方法
- codeigniter中測(cè)試通過(guò)的分頁(yè)類示例
- CI框架簡(jiǎn)單分頁(yè)類用法示例
相關(guān)文章
開(kāi)啟PHP Static 關(guān)鍵字之旅模式
靜態(tài)成員是一種類變量,可以把它看成時(shí)屬于整個(gè)類而不是屬于類的某個(gè)實(shí)例。與一般的實(shí)例變量不同的是,靜態(tài)成員只保留一個(gè)變量值,而這個(gè)變量值對(duì)所有的實(shí)例都是有效的,也就是說(shuō),所有的實(shí)例共享這個(gè)成員,跟著小編一起去探討php static關(guān)鍵字吧2015-11-11ThinkPHP實(shí)現(xiàn)的rsa非對(duì)稱加密類示例
這篇文章主要介紹了ThinkPHP實(shí)現(xiàn)的rsa非對(duì)稱加密類,結(jié)合實(shí)例形式分析了thinkPHP引入密鑰文件實(shí)現(xiàn)rsa加密解密的相關(guān)操作技巧,需要的朋友可以參考下2018-05-05laravel 實(shí)現(xiàn)登陸后返回登陸前的頁(yè)面方法
今天小編就為大家分享一篇laravel 實(shí)現(xiàn)登陸后返回登陸前的頁(yè)面方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10Laravel6.0.4中將添加計(jì)劃任務(wù)事件的方法步驟
此版本包括計(jì)劃任務(wù)事件、新的 JSON 斷言方法和所有最新更改。這篇文章主要介紹了Laravel6.0.4中將添加計(jì)劃任務(wù)事件的方法步驟,感興趣的可以了解一下2019-10-10使用 PHP Masked Package 屏蔽敏感數(shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了使用 PHP Masked Package 屏蔽敏感數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10PHP中用Trait封裝單例模式的實(shí)現(xiàn)
這篇文章主要介紹了PHP中用Trait封裝單例模式的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12