CodeIgniter con DataTables ajax puebla

Como tengo más de 20k ~ elementos para mostrar en DataTable , deseo DataTable acuerdo con algunos parámetros para evitar un gran retraso.

 // 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); }); 

Si no estuviera usando DataTables , de la forma tradicional, simplemente lo haría (para poblar el tbody ):

 $.each(json, function(index, item){ var tr = ""; tr += " "; tr += " " + item.id + ""; tr += " " + item.name + ""; tr += ""; $('#contacts-table').prepend(tr); }); 

Pero, con esta pieza de código, aunque los elementos se recuperan e insertan con éxito en la DataTable, las funciones de DataTable (como reordenar, buscar, etc.) dejan de funcionar y cuando uso esas funciones, se elimina automáticamente todo mi tabla tbody .

Así que he buscado un poco y encontré que debería llenar el DataTable usando el 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 }); 

Con este último código, recibo este error Advertencia: solicitud desconocida

El json que recibo del PHP es el siguiente:

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

Además del error que recibo, me pregunto cómo puedo configurar este tr += "

"; usando los DataTables por ajax .

Lo acabo de resolver, aunque ahora tengo otros problemas.

Básicamente, lo que tengo que hacer es, además de la configuración de dataTable, agregar algunos parámetros más para recuperar información de PHP como respuesta 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' }, ] }); 

Y la respuesta PHP json debe ser algo como esto:

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