2014-03-04 63 views
0

我有一個搜索字段,我想用分頁顯示結果。Codeigniter分頁鏈接dosnt工作後的第一頁

在第一個結果頁面中,每件事物都能很好地工作,但在其他頁面中,注意不會顯示任何錯誤,並且在返回第一頁時還有注意事項。

我在會話中放置了發佈的密鑰以避免丟失它。

但仍然注意到。

這是我的控制器:

public function search() 
{ 


    $this->session->set_userdata('searched',$this->input->post('searchterm')); 
    $searchterm = $this->session->userdata('searched'); 
    $limit = ($this->uri->segment(3) > 0)?$this->uri->segment(3):0; 

    $config['base_url'] = base_url() . 'home/search'; 
    $config['total_rows'] = $this->home_model->search_record_count($searchterm,$language); 
    $config['per_page'] = 10; 
    $config['uri_segment'] = 3; 
    $config['display_pages'] = TRUE; 
    $choice = $config['total_rows']/$config['per_page']; 
    $config['num_links'] = 3;  
    $this->pagination->initialize($config); 

    $data['results'] = $this->home_model->search($searchterm,$limit,$language); 
    $data['links'] = $this->pagination->create_links(); 
    $data['searchterm'] = $searchterm; 
    $data['total']= $this->home_model->search_record_count($searchterm,$language);  


     putHeader(); 
     putTop(); 
     putTopmenu(); 
     putSearch($data); 
     putFooter(); 
} 

這是我的模型:

public function search_record_count($searchterm) 
{ 
    $sql = "SELECT COUNT(*) As cnt FROM content WHERE body LIKE '%" . $searchterm . "%'"; 
    $q = $this->db->query($sql); 
    $row = $q->row(); 
    return $row->cnt; 
} 

public function search($searchterm,$limit) 
{ 

    $data = $this->db 
        ->select('content.title,content.id,content.category,content.body,path') 
        ->from('content') 
        ->join('categories','noor_content.category = categories.id')      
        ->like('noor_content.title', $searchterm) 
        ->like('noor_content.body', $searchterm) 
        ->limit("5")   
        ->order_by("content.id","DESC") 
        ->get(); 

    if($data->num_rows() > 0) 
    { 

     return $data->result(); 
     //print_r($data);exit(); 
    } 
    else 
    { 

     return 0; 
    } 
} 
+0

你試過'$ config ['base_url'] = site_url ( '家/搜索');'?啓用錯誤報告以查看錯誤 –

回答

0

的問題是,你是不是根據分頁限制查詢。在你的控制器中,你正在獲得第3個網段

$limit = ($this->uri->segment(3) > 0)?$this->uri->segment(3):0; 

並將它傳遞給你模型,但你沒有對它做任何事情。在你的模型,你想要做的事就像

$data = $this->db 
    ->select('content.title,content.id,content.category,content.body,path') 
    ->from('content') 
    ->join('categories','noor_content.category = categories.id')      
    ->like('noor_content.title', $searchterm) 
    ->like('noor_content.body', $searchterm) 
    ->limit("10, " . $limit) //Edited this line  
    ->order_by("content.id","DESC") 
    ->get(); 
0

我認爲你應該使用method =「GET」,而不是帖子...我的意思是一些像這樣的事情..

<form method="get" action="your_controller/your_function"> 
    //your search form 
</form> 

通過使用get代替ü後不必須使用任何會話變量和u可以輕鬆地訪問他們在您的控制器

$this->input->get('feild_name'); 

而且ü不會有第二個頁面或分頁任何其他頁面,因爲所有的搜索精密組件問題得到附加的URL和你可以輕鬆地訪問它使用$this->input->get('feild_name');直到你的網址被改變到別的東西..我會拯救你所有的編碼..