CodeIgniter с DataTables заполнить ajax

Так как у меня есть более 20 тысяч предметов для показа в DataTable Я хочу заполнить его согласно некоторым параметрам, чтобы избежать большого отставания.

// Clears the DataTable to avoid duplication of items
$('#contacts-table > tbody').empty();
var category_id = 5; // Just for tests

$.post('ajax_getAll', {category_id: category_id}, function(response){

// I retrieve the 'response' as json_encoded
var json = JSON.parse(response);

});

Если бы я не использовал DataTablesпо-традиционному я бы просто сделать (чтобы заполнить tbody):

$.each(json, function(index, item){

var tr  = "<tr>";
tr += "  <td><input type='checkbox' class='checkbox'/></td>";
tr += "  <td>" + item.id + "</td>";
tr += "  <td>" + item.name + "</td>";
tr += "</tr>";

$('#contacts-table').prepend(tr);
});

Но с этим фрагментом кода, хотя элементы извлекаются и успешно вставляются в DataTable, функции DataTable (такие как переупорядочение, поиск и т. Д.) Перестают работать, и когда я использую эти функции, он автоматически удаляет всю мою таблицу tbody,

Поэтому я немного искал и обнаружил, что должен заполнить DataTable, используя Data attribute,

// Since I've initialized the DataTable in the load of the jQuery
// I must destroy it so I can re-load it again
$('#contacts-table').DataTable().destroy();

$('#contacts-table').DataTable({
'bPaginate': true,
'bLengthChange': false,
'bFilter': true,
'bInfo': true,
'bAutoWidth': true,
"iDisplayLength": 30,
'aoColumnDefs': [{
'bSortable': false,
'aTargets': ['nosorting']
}],
"aaSorting": [],
'data': json, // Here I'm trying to pass the values without any success
});

С этим последним кодом я получаю эту ошибку Предупреждение: запрос неизвестен

JSON, который я получаю от PHP, выглядит следующим образом:

[{"id":"16","name":"just testing"}, {"id":"16","name":"stackoverflow"}]

Помимо ошибки, которую я получаю, мне интересно, как я могу настроить это tr += " <td><input type='checkbox' class='checkbox'/></td>"; с использованием DataTables от ajax,

0

Решение

Я только что решил, хотя у меня сейчас другие проблемы.

По сути, мне нужно, помимо настроек dataTable, добавить еще несколько параметров для получения информации из PHP в виде ответа json.

$("#contacts-table").dataTable({
// All the properties you want...then in the end
'serverSide': true,
'ajax': {
'url': 'ajax_getAll',
'type': 'POST',
},
'columns': [
{ 'data': 'id' },
{ 'data': 'name' },
]
});

И ответ PHP json должен быть примерно таким:

$response = array( 'sEcho' => 5,
'iTotalRecords' => 5,
'iTotalDisplayRecords' => 5,
'aaData' => array(array('id' => 1, 'name' => 'stackoverflow'),
array('id' => 2, 'name' => 'google')),
);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]