Почему разбиение на страницы на стороне сервера не работает для моей таблицы jQuery datatables?
Я пытаюсь заставить серверную пагинацию работать, но она просто не работает. Я искал повсюду решение своей проблемы, но все, что я нашел, почти то же самое, что и я, что не работает.
Я, вероятно, упускаю что-то очевидное здесь, я не использовал datatables так хорошо, и я нахожу его инструкции и примеры немного запутанными.
Вот мой код Javascript-он печатается из файла PHP как встроенный код Javascript, поэтому мне пришлось замените части PHP для краткости:
var display_start = 1;
var display_length = 10;
$( '#andrux' ).dataTable({
'sPaginationType': 'full_numbers',
'processing': true,
'serverSide': true,
'bSort': false,
'ajax': '/bp-subgroups.php?group=3&iDisplayStart=' + display_start + '&iDisplayLength=' + display_length
});
Согласно примерам, которые я видел, я не должен даже добавлять переменные iDisplayStart или iDisplayLength к моему запросу, но это единственный способ, которым я не получаю полную загрузку записей в мою таблицу.
Я знаю, что происходит в этом сценарии, я всегда отправляю 1 и 10 как начало отображения и длина отображения в моем запросе, я думаю, вопрос должен быть, как я могу держать их в обновленном состоянии в зависимости от страницы, на которой я нахожусь? Разве они не должны быть автоматически обновляется с каждым запросом?
Вот вывод, который я посылаю из моего кода PHP:
$output = array(
"sEcho" => intval( $_GET['sEcho'] ),
"iTotalRecords" => $iTotal,
"iTotalDisplayRecords" => $iTotal,
"aaData" => array()
);
Конечно aaData загружается с моими строками, я включаю только выше для краткости, плюс, я могу видеть данные просто отлично, я просто не могу сделать его разбиение на страницы.
Кто-нибудь с опытом, который может видеть, что я делаю неправильно?
Это уже сводит меня с ума, но я не хочу использовать другой плагин для этого, я не люблю сдаваться!
Спасибо всем.
2 ответов:
Ну, поскольку никто не дал этому шанса, мне просто пришлось исчерпать все свои ресурсы и найти решение самостоятельно.
Ответ был здесь: http://www.datatables.net/examples/data_sources/server_side.html
На вкладке "сценарий на стороне сервера", в самом низу, они включают класс SSP. Поскольку я использую WordPress здесь, я ошибочно предположил, что мне не понадобится этот класс, потому что мои запросы через $wpdb или другие основные функции WP, плюс, я читал всю документацию в интернете и даже не думал заглядывать в этот класс - зачем мне это, если я следовал остальным инструкциям, которые должны были работать.
Короче говоря, я сделал некоторые модификации в классе SSP, чтобы удовлетворить свои потребности, затем использовал почти ту же настройку, что и страницы примеров,и, наконец, получил правильную разбиение таблиц данных на страницы.Просто в качестве ссылки я пытался вернуть массив, подобный следующему, в datatables:
array( "sEcho" => intval( $_GET['sEcho'] ), "iTotalRecords" => $iTotal, "iTotalDisplayRecords" => $iTotal, "aaData" => $my_data );Когда выяснилось, что мне нужно вернуться массив такой:
array( "draw" => intval( $request['draw'] ), "recordsTotal" => intval( $recordsTotal ), "recordsFiltered" => intval( $recordsFiltered ), "data" => $my_data );Вероятно, это просто я, но datatables, хотя и хороший рабочий плагин, действительно нуждается в дополнительной работе над документацией. Я обнаружил, что некоторые параметры были найдены одним способом в одном месте и другим способом в другом месте - точно так же, как в примере выше.
Comments