2011-05-21 5 views
8

Piszę głową na klawiaturze, próbując znaleźć sposób na użycie ciągu zapytania z paginacją, wszystko działa dobrze, aż do strony FIRST pojawia się.Używanie podziału na strony z łańcuchem zapytań dla formularza wyszukiwania, który ma metodę ustawioną na odczytanie kodu

Wszystkie inne linki mieć ciąg kwerendy dołączany do ich końca ale link First stronę misses the query string

Linki do innych stron:

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

pierwszy link strona wykazać związek, że mam ustawiony w $config['base_url'] zmienna:

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

Formularz wyszukiwania:

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

Ma pole tekstowe o nazwie ustawionej na q.

natknąłem się kilka odpowiedzi na StackOverflow/przykładów i to, co napisałem:

Plik konfiguracyjny Pagination ma

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

i inni podobni num_tag_open itp

klasie kontrolera :

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! Chłopaki, pomóżcie mi

+0

+1 za głowę i klawiaturę: D –

Odpowiedz

10

Nie mogę w to uwierzyć, spędziłem wiele godzin szukając rozwiązania w Internecie! To było zawsze ze mną. Powinienem otworzyć bibliotekę stronicowania i przejrzeć jej zawartość, zanim opublikowałem to pytanie.Tylko jedna linia i problem rozwiązany.
Dodałem następujący wiersz w metodzie indeksu.
$config['first_url'] = '/index.php/search/index/?q='.$q;

+0

Dziękuję za bardzo przydatny wpis. –

Powiązane problemy