Разбивка на страницы с использованием нескольких критериев поиска в codeigniter - PullRequest
1 голос
/ 21 января 2010

Я пытаюсь реализовать нумерацию страниц, используя несколько критериев поиска. Предположим, у меня есть ученический стол. Я также использую нумерацию страниц, когда отображается список студентов. Нумерация страниц есть. site_url . '/student/page/'; поэтому я использую $config['uri_segment'] = 1; поэтому ссылка на страницы будет

<a href="http://mysite/index.php/student/page/0">1</a>
<a href="http://mysite/index.php/student/page/1">2</a>

и сын.

После этого я хочу искать данные ученика, используя 3 критерия поиска, реализованных с использованием текстового поля.

id  name    address.

пользователь может осуществлять поиск по идентификатору, имени, адресу или комбинации трех критериев. URL становится

http://mysite/index.php/student/page/0
href=http://mysite/index.php/student/page/1

и сын.

но я использую метод get для поиска. и при попытке поиска с использованием поля критериев поиска URL становится

href="http://mysite/index.php/student/page/1?id=1&name=a&address=b

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

href="http://mysite/index.php/student/page/0?id=1&name=a&address=b
href="http://mysite/index.php/student/page/1?id=1&name=a&address=b

или у вас есть лучшая практика для решения этой проблемы?


Привет, Филл .... Я попробовал ваше предложение.

$array = array('id' => '001', 'name' => 'a', 'address' => 'canada');

URL становится id/001/name/a/address/canada. Я использую функцию $this->uri->uri_to_assoc(), чтобы получить ключ и значение сегмента.

array (
    id => 001,
    name=>a,
    address=>canada
)

но пока есть некоторые критерии поиска, которые не включены при поиске. допустим, пользователь ищет только по имени и адресу. массив становится $array = array('id' => '', 'name' => 'a', 'address' => 'canada'); и URL id/name/a/address/canada ассоциативный массив становится

array (
    id => name,
    a=>address,
    canada=>
)

Ассоциированный массив снова не дезорганизован. поэтому я не могу получить правильное значение массива Assoc. Я думаю, что я буду устанавливать идентификатор для критериев поиска, если не включены. Предположим, я положил #.

if isset($_GET['id']) then
$id = '#'
else 
$id = $_GET['id']

$array = array('id' => $id, 'name' => 'a', 'address' => 'canada');

Как насчет этого ...? или есть еще лучшие практики?

Ответы [ 2 ]

1 голос
/ 21 января 2010

Для этого я бы использовал $ this-> uri-> uri_to_assoc ():

index.php / пользователь / поиск / имя / джо / место / UK / пол / мужской

Используя эту функцию, вы можете включить URI в ассоциативный массив с этот прототип:

[array]
(
    'name' => 'joe'
    'location' => 'UK'
    'gender' => 'male'
)

См. Полную документацию здесь .

Вы по-прежнему можете использовать page / 1 в качестве первого лота, а затем иметь / name / что угодно.

0 голосов
/ 08 июля 2010

На самом деле, мы можем создавать нумерацию страниц по нескольким и неограниченным критериям. Читать здесь http://dengkul.com/2010/07/08/codeigniter-pagination-with-multiple-unlimited-searching-criteria/

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