Tengo una tabla de datos en mi página iniciada como a continuación:
var dataSet = [ { "id": 1, "name": "Bennett Weimann", "email": "jtremblay@example.com" }, { "id": 2, "name": "Bennett Weimann", "email": "buckridge.orin@example.com" } ]; $(document).ready(function () { $('#example').DataTable({ data: dataSet, columns: [ { data: 'id', title: 'Id' }, { data: 'name', title: 'Name' }, { data: 'email', title: 'Email' }, ], }); });Además, tengo un botón que hace una solicitud de publicación de ajax, en la respuesta obtengo un json
[{"id":1,"name":"Bennett Weimann","email":"jtremblay@example.com"}, {"id":2,"name":"Bennett Weimann","email":"buckridge.orin@example.com"}]Si trato de agregar la respuesta como a continuación, aparece un error
request.done(function (response, textStatus, jqXHR) { table = $('#example').DataTable(); table.clear(); table.rows.add(response); table.draw(); });El error es "Advertencia de DataTables: ID de tabla = ejemplo - 'ID' de parámetro desconocido solicitado para la fila 0, columna 0. Para obtener más información sobre este error, consulte http://datatables.net/tn/4"
Sin embargo, si copio y pego la respuesta manualmente, no hay ningún problema.
request.done(function (response, textStatus, jqXHR) { table = $('#example').DataTable(); table.clear(); table.rows.add([ {"id":1,"name":"Bennett Weimann","email":"jtremblay@example.com"}, {"id":2,"name":"Bennett Weimann","email":"buckridge.orin@example.com"} ]); table.draw(); });Cualquier ayuda apreció lo que podría causar tal error.
Debo haber estado cansado ... después de dormir pude ver que estaba pasando un objeto en lugar de una matriz. Estoy usando php como backend, si creo una matriz como
$data = array([ "id" => 1, "name" => "foo", "email" => "bar" ]); return $data;y pasando la respuesta funciona a las mil maravillas
request.done(function(response, textStatus, jqXHR) { table = $('#example').DataTable(); table.clear(); table.rows.add(response); table.draw(); });