2011年3月7日 星期一

[CodeIgniter] 製作分頁 pagination函式

用CodeIgniter 製作出像下面的分頁


先在Controllers中寫下下列函式
function index()
 {
  $this->page(0);//呼叫page函式並帶入0的數值
   
 }
function page($set)
 {
  $this->load->library('pagination');   
  $data['title'] = "留言板"; //設定title
  $data['heading'] = "留言板";//設定標題 
  $data['all'] = $this->db->count_all_results('book'); 
  $config['base_url'] = base_url().'/book/page/';//設定頁面輸出網址
  $config['total_rows'] = $this->db->count_all_results('book'); //計算所有筆數
  $config['per_page'] = '10'; //一個分頁的數量
  //以下是設定樣式
  $config['full_tag_open']   = '';
  $config['first_link']      = '首頁';
  $config['last_link']       = '末頁';
  $config['next_link']       = '下一頁>';
  $config['prev_link']       = '<上一頁';
  
  $this->pagination->initialize($config);//初始化 
  $this->db->order_by('id','desc');
  $this->db->limit($config['per_page'],$set);
   $data['query']=$this->db->get('book');
        $data['pagelist']=$this->pagination->create_links();//顯示分頁,如果沒有分頁不會印出
        $this->load->view('book_viewend',$data);
   
 }

在View中用下列的程式碼來抓出資料
//印出分頁
result() as $row): 

echo $row->name; 
echo $row->content; 
echo $row->time;

endforeach;?>

這樣寫已經可以製作出分頁了
但會出現一個問題,切換其他頁可以,但切回第一頁就出現錯誤訊息

因為在第一頁的時候沒有給function page裡的$set值

解決方法:打開application/config/router.php 在裡面新增一行
$route['book/page'] = "book";//將book/page的網址轉到book(我的留言版首頁)

這樣就完成了

沒有留言: