2011-05-21 20 views
8

Tôi đang đập đầu trên bàn phím để tìm cách sử dụng chuỗi truy vấn với phân trang mỗi thứ hoạt động tốt cho đến khi liên kết trang FIRST xuất hiện.Sử dụng phân trang với chuỗi truy vấn cho biểu mẫu tìm kiếm có phương thức được đặt trong mã vạch

Tất cả các liên kết khác có chuỗi truy vấn nối vào cuối của họ nhưng liên kết First trang misses the query string

Liên kết cho các trang khác:

http://localhost/index.php/search/index/9?q=some_Data_From_Form 

Liên kết trang FIRST hiển thị các liên kết mà tôi đã thiết lập trong các $config['base_url'] biến:

http://localhost/index.php/search/index/ 

các hình thức tìm kiếm:

$attributes=array('id'=>'search','class'=>'clearfix','method'=>'get'); 
echo form_open(base_url().'index.php/search/index',$attributes); 

Có hộp văn bản có tên được đặt là q.

tôi stumbled khi một vài câu trả lời/ví dụ trên stackoverflow và đây là những gì tôi đã viết:

Các tập tin cấu hình Pagination có

$config['per_page'] = '1'; 
$config['uri_segment'] = '3'; 

và những người khác như num_tag_open, vv

Lớp điều khiển :

class Search extends CI_Controller { 
    public function Search(){ 
     parent::__construct(); 
     $this->load->helper('url'); 
     $this->load->helper('form'); 
     $this->load->library('input'); 
     $this->load->model('blog_model'); 
     $this->load->library('pagination'); 
     $this->config->load('pagination'); //other pagination related config variables 
    } 

    public function index($page=0){ 
     $q = trim($this->input->get('q')); 
     if(strlen($q)>0){ 
      //validate input and show data 
      $config['enable_query_strings']=TRUE; 
      $getData = array('q'=>$q); 
      $config['base_url'] = 'http://localhost/index.php/search/index/'; 
      $config['suffix'] = '?'.http_build_query($getData,'',"&"); 

      $data['rows'] = $this->blog_model->getBySearch($q,$this->config->item('per_page'),$page); 
      if(empty($data['rows'])){ 
       //no results found    

      }else{ 
       //match found 
       $config['total_rows'] = $this->blog_model->getBySearchCount($q); 
       $this->pagination->initialize($config); 
       $link->linkBar = $this->pagination->create_links(); 
       $this->load->view('myview',array($data,$link)); 
      } 
     }else if(strlen($q)==0){ 
      //warn user for the missing query and show a searchbox 

     } 
    } 
} 

SOS! Các bạn, hãy giúp tôi ra

+0

+1 cho đầu và bàn phím: D –

Trả lời

10

Tôi không thể tin được điều này, tôi đã dành hàng giờ tìm kiếm trên web để tìm giải pháp! Nó luôn luôn với tôi. Tôi nên đã mở thư viện pagination và xem nội dung của nó trước khi tôi đăng câu hỏi này.Chỉ cần một dòng và giải quyết vấn đề.
Tôi đã thêm dòng sau vào phương pháp chỉ mục.
$config['first_url'] = '/index.php/search/index/?q='.$q;

+0

Cảm ơn bạn đã đăng bài thực sự hữu ích. –

Các vấn đề liên quan