Я стуча головой по клавиатуре, пытаясь понять способ использования строки запроса с разбиением на страницы, все прекрасно работает, пока не появится ссылка FIRST
.
Все остальные ссылки содержат строку запроса, добавленную к их концу, но ссылка First
страницы misses the query string
Ссылки для других страниц:
http://localhost/index.php/search/index/9?q=some_Data_From_Form
Ссылка FIRST-страницы показывает ссылку, которую я установил в переменной $config['base_url']
:
http://localhost/index.php/search/index/
Форма поиска:
$attributes=array('id'=>'search','class'=>'clearfix','method'=>'get'); echo form_open(base_url().'index.php/search/index',$attributes);
Он имеет текстовое поле с именем, установленным в q
.
Я наткнулся на несколько ответов / примеров на stackoverflow, и вот что я написал:
Файл конфигурации Pagination имеет
$config['per_page'] = '1'; $config['uri_segment'] = '3';
и другие, такие как num_tag_open
и т. д.
Класс контроллера:
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! Ребята, пожалуйста, помогите мне
Я не могу в это поверить, я часами искал в Интернете решение! Это всегда было со мной. Мне нужно было открыть библиотеку разбиения на страницы и просмотреть ее содержимое, прежде чем я разместил этот вопрос. Одна строка и проблема решены.
Я добавил следующую строку в методе индекса.
$config['first_url'] = '/index.php/search/index/?q='.$q;