Вопрос по – Пагнация с GET-данными в URI - Codeigniter

2

Я пытаюсь разбить на страницы результаты, возвращаемые БД. Но когда я пытаюсь получить смещение от URI:

questions/search?content=foobar/4

/4 должно быть смещение, но оно присваивается$_GET значение.

Это весь метод в контроллере:

http://pastebin.com/QFJddMDJ

$results = $this->question->search_results_count($content);
$this->load->library('pagination');
$config['total_rows'] = count($results);
$offset = $this->uri->segment(3);
if ($offset == false) $offset = 0;
$config['full_tag_open'] = '<ul class="pages">';
$config['full_tag_close'] = '</ul>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li><a  class="active">';
$config['cur_tag_close'] = '</a></li>';
$config['prev_tag_open'] = '<li class="prev">';
$config['prev_tag_close'] = '<li>';
$config['next_tag_open'] = '<li class="next">';
$config['next_tag_close'] = '</li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['first_link'] = '<<';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_link'] = '>>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$config['per_page'] = 1;
$config['uri_segment'] = 2;
$config['page_query_string'] = TRUE;
$config['use_page_numbers'] = TRUE;
$config['suffix'] = '?content='.$content;
$config['base_url'] = base_url().'questions/search/';
$this->pagination->initialize($config);
Строка запроса должна быть последней в вашем URL. Что-то вроде / search / 4? Content = foo работает? Sérgio Michels
Найдите в своем файле config / config.php и запись, в которой написано $ config [& apos; base_url] = xxxxxx; msgmash.com
Как настроить base_url в конфиге? Ivanka Todorova

Ваш Ответ

1   ответ
12

вы знаете, что URI не работают таким образом. Строка запроса должна быть в конце (или перед# фрагмент хеша). Эта строка запроса:

questions/search?content=foobar/4

Средства$_GET['content'] = 'foobar/4';

Вам нужно изменить URL-адреса нумерации страниц примерно так:

questions/search/4/?content=foobar

/ после 4 есть также необязательно.

Вам придется удалить строку запроса из страниц разбивки на страницы.$config['base_url'] и вместо этого добавьте его к ссылкам в представлении, что, к сожалению, включает в себя взлом класса пагинации ...

Или попробуйте эту недокументированную функцию:

// After loading the pagination class
$this->pagination->suffix = '{YOUR QUERY STRING}';

Или еще лучше, просто добавьте$config['suffix'] = '{YOUR QUERY STRING}'; в ваш конфиг перед загрузкой класса. Это должно автоматически добавить строку запроса к каждой ссылкеhref.

Также необходимо внести некоторые коррективы в вашу конфигурационную область:

// Make sure to encode these
// $config['first_link'] = '<<';
$config['first_link'] = '&lt;&lt;';
// $config['last_link'] = '>>';
$config['last_link'] = '&gt;&gt;';

$offset = $this->uri->segment(3);
// Default URI segment is 3, and it's what you use above. Remove this.
// $config['uri_segment'] = 2;

// This should be FALSE (default). Remove it.
// $config['page_query_string'] = TRUE;

// This should be FALSE (default) if you're
// using the URI segment as your OFFSET. Remove it.
// $config['use_page_numbers'] = TRUE;

// Add your query string
$config['suffix'] = '?content='.$content;
$config['base_url'] = base_url().'questions/search/';
$this->pagination->initialize($config);
Готово. Я вставил в pastebin.com =) Ivanka Todorova
Что-то вроде?content=foobar, Все, что вы хотите, чтобы появиться в href после номера страницы.
Ты помнишьecho? ... Отредактируйте свой вопрос и добавьте свой полный код в свой пост, и я посмотрю на него.
Я сделал что-то вроде этого:$config['suffix'] = '?content='.$content; Но когда я создаю_линки (), на выходе получается пустая строка. Ivanka Todorova
Я не вижу, где вы находитесьdisplaying ссылки, там должен быть файл просмотра, где вы используетеecho $pagination;, Ли удалениеsuffix часть заставляет ссылки отображаться снова? Также вам нужно удалитьpage_query_string в вашем конфиге. Также убедитесь, что HTML-кодирование этих скобок в$config['first_link'] = '<<';

Похожие вопросы