Errores datatable, que son y como solucionarlos

Error Nº1

Cuando nos de el error:

DataTables warning: table id=tblusers – Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1

Revisar en tabla cada una de las funciones del modelo que extraen datos en el controlador que obtiene los datos del datatable y los devuelve en formato Json, puede ser que algun campo que untilizo como id para pasarselo a otro modelo este a 0 o este corrupto con un valor que no es el esperado.

Ejemplo: obtengo un listado de emails de un id_cliente que le paso como parámentro a la funcion del modelo:

$emails = $this->emails_model->get_emails_by_id_cliente($this->session->userdata(«idcliente»));

Si por casualidad la tabla emails tiene datos inconsistentes o corruptos de pruebas que hemos realizado a pelo, dará este error, en mi caso tenia varios emails cuyo campo id_cliente estaba a 0, por lo que fallaba la consulta.

Borré los emails cuyo campo id_cliente estaba a 0 y solucionado, eso si, me llevó casi una hora darme cuenta del fallo, que como siempre es humano. 😉

 Error Nº4

Cuando nos de el error:

DataTables warning: table id=tblusers – Ajax error. For more information about this error, please see http://datatables.net/tn/4

Este error ocurre cuando los campos del array que genera la funcion del controlador que obtiene los datos del modelo y los devuelvo en formato json no se corresponden con los campos que hay en la funcion ajax que configura el datatable en la vista que muestra el datatable( parametros «aoColumns» y «aoColumnDefs») ni con los de las etiquetas <thead> y <tfoot>.

Resumiendo que el numero de parametros tienen que ser los mismos en los siguientes sitios:

  • El array de datos del controlador que obtiene los datos del modelo(controlador_datatable/get_emails_ajax_to_datatable)
  • El numero de parametros de las columnas «aoColumns» y «aoColumnDefs» de la funcion ajax que configura el datatable(vista_datatable_emails)
  • Las etiquetas <th> de las etiquetas <thead> y <tfoot> de la vista del datatable tienen que ser los mismos(vista_datatable_emails)

Error Nº 7

Cuando nos de el error:

DataTables warning: table id=tblusers – Ajax error. For more information about this error, please see http://datatables.net/tn/7

Es muy probable que sea algo que tenemos mal en el modelo que carga los datos en el datatable.