Вам необходимо изменить внешний интерфейс В соответствии со следующим фрагментом кода.
$('#poyntSubcriptionsTable').DataTable({
"serverSide": true,
"processing": true,
"searchDelay": 1000,
"ajax": "your-controller/search?action=filterByState&status=" + filterStatus,
"columns": [
{"data": "id"},
{"data": "title"},
],
"pageLength": 25
});
На стороне внутреннего интерфейса вы получите следующие параметры GET и сможете использовать их в соответствии со своими требованиями.
$_GET["start"] - Starting raw number.
$_GET["length"] - Number of rows to fetch once
$_GET["draw"] - Draw is a unique identifier for request and response (When ajax request send to do a searching it sends draw value as 1, when composing the search result response draw is set to 1 and re-send)
(Предположим, вы установили длину равной 10, и при первой загрузке вы получите от 1 до 10 записей в качестве первой страницы. Как только вы щелкнете по странице 2, будут получены строки с 11 по 20.)
Ваш сервер JSON ответа должен быть следующим:
{
"data":[
{
"id":29629,
"title":"fghfgh",
"status":"PUBLISHED",
"categories":"Accounting Software",
"ext_ref_id":null,
"created_time":"2018-08-06 11:45:18"
},
{
"id":29628,
"title":"hhh",
"status":"PUBLISHED",
"categories":"Bakers Supplies",
"ext_ref_id":null,
"created_time":"2018-08-06 09:26:24"
}
],
"recordsTotal":"29646",
"recordsFiltered":"29646",
"draw":1
}