2015-02-18 2 views
0

Я читаю http://www.datatables.net/examples/data_sources/server_side.html и их примеры, но это серьезно сложно выполнить. Даже https://datatables.net/manual/server-side свет на примерах.Datatables.net для больших наборов данных

Перед тем, как идти по этому пути так далеко, что я не могу повернуть назад, может кто-нибудь, кто использовал DataTables подтвердить следующие за мной:

  1. Я может в конечном итоге, большой набор данных с тысячами записи; могу ли я сделать так, чтобы первоначально загружались только первые, скажем, 10 записей. И затем, если пользователь нажимает кнопку «Следующая страница», отображаются записи 11-20, и если они снова попадают на «Следующая страница», отображаются 21-30 и т. Д.? Загружается из базы данных (через ajax/webservice) каждый раз, так что это быстро для пользователя.

  2. Могу ли я сделать так, чтобы поисковая строка просматривала весь набор данных из базы данных? Вероятно, около 3 столбцов мне нужно будет фильтровать (например, имя пользователя, адрес электронной почты, почтовый адрес).

Если я могу сделать обе эти вещи, то Datatables могут работать на меня. Поэтому, если кто-то, у кого есть опыт работы с ним, может поделиться своим опытом в отношении вышеупомянутых вопросов, которые были бы замечательными. Благодарю.

ответ

1

Чтобы ответить как на 1, так и на 2 одновременно: да, это точно так же работает на стороне сервера, и его довольно легко реализовать. Объект отправляется компоненту на стороне сервера с информацией о том, что искать и сколько возвращать (равное количеству элементов, которые вы указываете на странице за раз), а ответ - это объект JSON, содержащий только достаточное количество данных для соответствия на одной странице. Вы просто установить следующие параметры при создании датируемого

"serverSide": true, 
"ajax": "yourscript.php" 

Отъезда образца они предлагают здесь: http://www.datatables.net/examples/data_sources/server_side.html Подтяните хром инспектор/поджигатель и посмотреть на вкладке сети. Вы можете видеть, что полезная нагрузка отправляется туда и обратно каждый раз, когда вы просматриваете страницу и выполняете поиск (datatables позаботится о том, чтобы построить это для вас, но это дает вам немного представление о том, как именно это работает). На этой же странице вы можете увидеть на вкладках javascript, который использовался для настройки datatable client side, а затем php-скрипт, который использовался для настройки серверной части. По какой-то причине второй стороне сервера скрипт не появляется, чтобы быть на этой странице, но вы можете найти его здесь: https://github.com/DataTables/DataTables/blob/master/examples/server_side/scripts/ssp.class.php

EDIT 1: изменить текст информации добавьте в ваши варианты:

language: { 
     "info": "page _PAGE_ of _PAGES_" 
    } 
+0

Благодарности для вашего ответа - для собственного примера на https://datatables.net/examples/server_side/simple.html; как узнать, что возвращает JSON с помощью '" ajax ":" scripts/server_processing.php "выглядит? Я пробовал различные URL-адреса на своем сайте, и я не могу найти этот файл php в любом месте. В принципе, я хочу знать, что такое 'json_encode (SSP :: simple ($ _GET, $ sql_details, $ table, $ primaryKey, $ columns))' возвращается, потому что я не хотят использовать свои классы. Я использую Symfony, поэтому вместо этого буду использовать Doctrine, но я не знаю, как отформатировать JSON. – b85411

+0

А ... на этой странице смотрите вкладку с надписью «Ajax». Он показывает вам точный формат, в котором должен реагировать клиент. EDIT: обновил мой ответ, чтобы включить ссылку на класс PHP, который они используют. Если вы хотите посмотреть, как выглядел код на стороне сервера, а не пытаться воссоздать то, что было на вкладке «Ajax» вручную. – jwhazel

+0

Спасибо, это очень помогает. Что касается поисковой части - как это работает? Как я узнаю через код, что я хочу выполнить полный поиск всех записей базы данных, а не только то, что было загружено в данные в этот момент? – b85411

Смежные вопросы