Почему разбиение на страницы на стороне сервера не работает для моей таблицы 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 загружается с моими строками, я включаю только выше для краткости, плюс, я могу видеть данные просто отлично, я просто не могу сделать его разбиение на страницы.



Кто-нибудь с опытом, который может видеть, что я делаю неправильно?



Это уже сводит меня с ума, но я не хочу использовать другой плагин для этого, я не люблю сдаваться!



Спасибо всем.

648   2  

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

    Ничего не найдено.