Tengo un problema con la función de recarga de DataTables.
Estoy usando el siguiente código para cargar y recargar la tabla (lado del servidor).
$( document ).ready(function() { $('#dienst_tabelle').DataTable( { "ajax": "getData.php", "serverSide": true, "bProcessing": true, "bPaginate":false, "searching": false, "paging": false, "info": false, "columns": [ { mData: 'dienstname' } , { mData: 'tagesart' }, { mData: 'gueltig_am' }, { mData: 'dienstbeginn' }, { mData: 'dienstende' }, { mData: 'zeit' }, { mData: 'status' }, { mData: 'button' } ] }); setTimeout(function(){ $('#dienst_tabelle').DataTable().ajax.reload(null, false); }, 3000); });La tabla se carga correctamente, pero la función de recarga no hace nada...
¿Qué estoy haciendo mal?
Puedo recrear su problema, si no manejo correctamente el parámetro de draw del lado del servidor .
La documentación para este parámetro establece:
El contador de extracción al que responde este objeto, desde el parámetro de extracción enviado como parte de la solicitud de datos.
Cada vez que DataTables envía una solicitud al servidor, incrementará este contador de enteros (comenzando en 1). Es trabajo del servidor asegurarse de que el parámetro de draw que devuelve en su respuesta corresponde al parámetro que recibió en la solicitud.
Entonces, por ejemplo, si codifica el parámetro de draw en el servidor a 1 , entonces la solicitud generada por setTimeout tendrá un valor de draw de 2 y el servidor responderá con un valor de draw de 1 . Esta discrepancia dará como resultado que se reciba la respuesta, pero que DataTables la ignore.
La solución es que su código del lado del servidor recupere el valor de draw de la solicitud y devuelva ese mismo valor exacto (como un número entero) en la respuesta. Está usando PHP, que yo no uso, por lo que ya sabe cómo acceder a los parámetros de solicitud usando PHP, o es posible que deba investigar eso.
(En su caso, donde está usando GET , entonces tal vez necesite usar $_GET o $_REQUEST en su PHP).