Codeigniter нумерация страниц с поисковым термином в URI - PullRequest
0 голосов
/ 26 января 2012

У меня есть функция контроллера, которая отображает все записи, я использую класс разбиения на страницы, чтобы разделить записи по страницам.Контроллер выглядит примерно так

class Example extends CI_Controller {

     [...]

     function All()
     {
       //Gets all the records
      //Pagination uri_segment set to 3
     }
}

Теперь я добавил возможность поиска по записям.Мне нужно, чтобы поисковый термин был в URI, поэтому функция похожа на function All($search_term = false).Моя проблема в том, что функция может иметь или не иметь поисковые термины.и в зависимости от этого, uri сегмент нумерации страниц будет меняться.без поискового термина значение uri_segment равно 3, с ним - 4.

Можно ли это исправить, используя ту же функцию и имея поисковый термин в URL?

Ответы [ 4 ]

0 голосов
/ 20 августа 2012

Вы просто меняете

$config["uri_segment"] = 3; до $config["uri_segment"] = 4;

, а также изменить base_url как

$config["base_url"] = "site_url('student/index')".$search_key;

и получите ключ для поиска по

$key = $this->uri->segment(3);
0 голосов
/ 26 января 2012

Вы можете использовать параметр get для строки запроса. Например:

search.php

function search() {
  $q = $this->input->get('q');
  $page = $this->uri->segment(3);
  $results = $this->my_model->search($q, $page);
  $this->load->view('search_tpl', $results);
}

search_tpl.php

echo form_open(current_url(), array('method' => 'get'));
echo form_input('q');
echo form_submit('search', 'Search');
echo form_close();
0 голосов
/ 27 января 2012

Вы можете использовать page_query_string в переменной нумерации $ pagination

$config['page_query_string'] = TRUE;

После включения этой опции $ _GET будет использоваться для создания ссылки пагинации.

Пример результата: example/all/?per_page=20

0 голосов
/ 26 января 2012

Это может быть сделано разными способами, лично я бы сделал что-то простое, например, сохранил это в сеансе или в cookie, но вы можете сделать URI, а также обратиться к форуму CI для этого:1004 * Имейте в виду, что люди могут вводить строки, не относящиеся к URI, в ваш поисковый запрос, и вам придется urlencode / декодировать значения, чтобы поместить их в строку, то, что вам не нужно с файлами cookie или сеансами.Но снова я вижу выгоду для копирования и вставки ссылки на кого-то для результатов поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...