《PHP應(yīng)用:PHP CodeIgniter分頁實(shí)例及多條件查詢解決方案(推薦)》要點(diǎn):
本文介紹了PHP應(yīng)用:PHP CodeIgniter分頁實(shí)例及多條件查詢解決方案(推薦),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
最近在用CI框架的時(shí)候,用了CI的分頁類,以前是用前端整分頁,這次干脆用用框架自帶的,自己這個(gè)健忘的腦袋,還是記錄一下吧.PHP實(shí)戰(zhàn)
因?yàn)轫撁嬷杏袟l件篩選的表單,所以想要完成的效果就是,輸入條件后,分頁跳轉(zhuǎn)之后能維持所輸入的條件.想了一下,自己的思路如下代碼吧.PHP實(shí)戰(zhàn)
controller 代碼PHP實(shí)戰(zhàn)
class Monitors extends CI_Controller { public function warning(){ $config= array(); $config['per_page'] = 15; //每頁顯示的數(shù)據(jù)數(shù) $current_page = intval($this->input->get("per_page")); //獲取當(dāng)前分頁頁碼數(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;//頁碼連接數(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ù)PHP實(shí)戰(zhàn)
$config[‘page_query_string']
如果設(shè)置成true,則url則是”index.php/monitors/warning?per_page=20”這樣的PHP實(shí)戰(zhàn)
【注】”per_page” 是默認(rèn)傳遞的查詢字符串,但也可以使用 $config[‘query_string_segment'] = ‘你的字符串' 來配置PHP實(shí)戰(zhàn)
在我的方案中,設(shè)置為TRUE,當(dāng)然TRUE是默認(rèn)值,不管也可以;PHP實(shí)戰(zhàn)
$config[‘base_url']
一開始只是設(shè)置為以下這種情況的時(shí)候,在某一頁進(jìn)行條件篩選是可以的,但是跳轉(zhuǎn)后由于刷新的問題條件又沒有了.PHP實(shí)戰(zhàn)
$config['base_url'] = base_url().'index.php/monitors/warning;
采用以下的方式即可,吼吼吼PHP實(shí)戰(zhàn)
$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頁面代碼PHP實(shí)戰(zhàn)
就一句話,在你需要放置分頁元素的地方加上這樣一句就行,這里的$page變量就是在controller里存進(jìn)去的$this->pagination->create_links();
PHP實(shí)戰(zhàn)
<?php echo $page?>
設(shè)置分頁樣式PHP實(shí)戰(zhàn)
這里采用的是bootstrap的樣式PHP實(shí)戰(zhàn)
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/780.html