2015-07-06 42 views
6

我正在使用分頁搜索結果。搜索正在發生完美。搜索後顯示前10條記錄。但是當我點擊下一個按鈕時,一切都消失了,空白頁面就在那裏。codeIgniter分頁 - 不會轉到搜索結果的下一個鏈接

如果有人有一個想法,請幫我弄清楚我的代碼中有什麼問題。

模型

function search_bookings($time, $title, $payment, $start_date, $end_date,$limit, $start, $type) { 

     $this->db->select('reservations.*'); 
     $this->db->from('reservations'); 
     $this->db->where('is_deleted', '0'); 
     $this->db->order_by('date_cal',"desc"); 

     if (!empty($time) && !is_null($time)) { 
      $this->db->where('reservations.type', $time); 
     } 
     if (!empty($payment) && !is_null($payment)) { 
      $this->db->where('reservations.advanced_payment_status', $payment); 
     } 

     if (!empty($title) && !is_null($title)) { 
      $this->db->where('reservations.title', $title); 
     } 

     if (!empty($start_date) && !is_null($start_date)) { 
      $this->db->where('reservations.date_cal >=', $start_date); 
      $this->db->where('reservations.date_cal <=', $end_date); 
     } 

     if ($type == 'half') { 
      $this->db->limit($limit, $start); 
     } 
     $query = $this->db->get(); 
     return $query->result(); 
    } 

控制器

function search_reservations($start = 0) { 
     $reservation_service = new Reservation_service(); 
     $config = array(); 

     $config["base_url"] = site_url() . "/dashboard/manage_bookings/"; 
     $config["per_page"] = 10; 
     $config["uri_segment"] = 4; 
     $config["num_links"] = 4; 

     $time = $this->input->post('type', TRUE); 
     $title = $this->input->post('title', TRUE); 
     $payment = $this->input->post('payment', TRUE); 
     $date_from = $this->input->post('date_from', TRUE); 
     $date_to = $this->input->post('date_to', TRUE); 
     $searched_results = $reservation_service->search_bookings($time, $title, $payment, $date_from, $date_to, $config["per_page"], $start, 'half'); 
     $data['search_results'] = $searched_results; 
     $config["total_rows"] = count($reservation_service->search_bookings($time, $title, $payment, $date_from, $date_to, $config["per_page"], 0, 'all')); 
     $this->pagination->initialize($config); 

     $data["links"] = $this->pagination->create_links(); 

     $this->load->view('body_pages/search_results', $data); 
    } 

的搜索結果視圖

<table class="display table table-bordered table-striped" id="bookings_table"> 
    <thead> 
     <tr> 
      <th>#</th> 
      <th>Date</th> 
      <th>Hall</th> 
      <th>Time</th>        
      <th>Actions</th> 
     </tr> 
    </thead> 
    <tbody> 
     <?php 
     $i = 0; 
     foreach ($search_results as $result) { 
      ?> 
      <tr id="bookings_<?php echo $result->id; ?>"> 
       <td><?php echo ++$i; ?></td> 
       <td><?php echo $result->date_cal; ?></td> 
       <td><?php if ("RP" == $result->title) { ?><?php 
         echo "Royal Princess Ballroom (Downstairs)"; 
        } 
        ?> 
        <?php if ("GK" == $result->title) { ?><?php 
         echo "Grand Kings Ballroom (Upstairs)"; 
        } 
        ?> 
       </td> 
       <td><?php echo $result->type; ?></td> 
       <td align="center">  
        <a class="btn btn-primary btn-xs" onclick="display_edit_reservation_pop_up(<?php echo $result->id; ?>)"><i class="fa fa-pencil" title="Update"></i></a> 
        <a class="btn btn-danger btn-xs" onclick="delete_bookings(<?php echo $result->id; ?>)" ><i class="fa fa-trash-o " title="Remove"></i></a> 
       </td> 
      </tr> 
     <?php } ?> 

    </tbody> 

</table> 

<div class="pagination"> 
    <?php echo $links; ?> 
</div>           
+0

'$ config [「uri_segment」] = 2;' –

+0

@Abdulla它沒有爲我工作。 – Stell

+0

'$ config [「uri_segment」] = 3;'試試這個 –

回答

0

嘿,請喜找到分頁類

/* start code of pagination */ 
     $config      = array(); 
     $config["base_url"]   = base_url()."cms/manage_cms"; 
     if (count($_GET) > 0) $config['suffix'] = '?' . http_build_query($_GET, '', "&"); 
     if (count($_GET) > 0) $config['first_url'] = $config['base_url'].'?'.http_build_query($_GET); 
     $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; 
     //$page = 0; 
     $config["total_rows"]  = count($this->mdl_cms->getAllCmsByCondition($searchindex,$orderField,$orderby,$rowsPerPage,$page,false)); 

     if($config["total_rows"] < $rowsPerPage){ 
      $page = 0; 
     } 
     $config["per_page"]   = $rowsPerPage; 
     //$config["uri_segment"]  = 3; 
     $config['full_tag_open'] = '<div class="pagination"><ul>'; 
     $config['full_tag_close'] = '</ul></div><!--pagination-->'; 

     $config['first_link'] = '&laquo; First'; 
     $config['first_tag_open'] = '<li class="prev page">'; 
     $config['first_tag_close'] = '</li>'; 

     $config['last_link'] = 'Last &raquo;'; 
     $config['last_tag_open'] = '<li class="next page">'; 
     $config['last_tag_close'] = '</li>'; 

     $config['next_link'] = 'Next &rarr;'; 
     $config['next_tag_open'] = '<li class="next page">'; 
     $config['next_tag_close'] = '</li>'; 

     $config['prev_link'] = '&larr; Previous'; 
     $config['prev_tag_open'] = '<li class="prev page">'; 
     $config['prev_tag_close'] = '</li>'; 

     $config['cur_tag_open']  = '<li class="active"><a href="">'; 
     $config['cur_tag_close'] = '</a></li>'; 
     $config['num_tag_open']  = '<li class="page">'; 
     $config['num_tag_close'] = '</li>'; 

     $this->pagination->initialize($config); // Load pagination class 


     $usersArr = $this->mdl_cms->getAllCmsByCondition($searchindex,$orderField,$orderby,$rowsPerPage,$page,true); 
     //echo $this->db->last_query(); //die; 
     $data["links"] = $this->pagination->create_links(); // Create pagination links 

希望它會爲你工作

+0

我會試試這個。謝謝 – Stell

0

你正在服用的$時,$標題,$支付低於控制器代碼, $ date_from,$ date_to來自POST的變量。

的paginiation環節都喜歡 - 家用/ search_reservations/2

一旦那些從後搜索數據丟失的鏈接用戶點擊。如果您希望它們影響所有頁面,則需要將搜索參數保留在記錄中。

2種方法可以做到這一點 -

1)使用GET而不是POST。將您的搜索參數保留在生成的分頁鏈接的查詢字符串中。這樣所有的頁面都會有搜索參數。如果您想共享/書籤搜索結果的特定頁面,這也很有用。例如,您的頁面將鏈接,如 -

www.yoursite.com/home/search_reservations/2?time=123&title=123&payment=123&date_from=123&date_to=123 

2)在會話中保留搜索參數。代碼中很多亂七八糟,但在URL中更漂亮。