Como quitar mensaje DataTables warning: table id=tabla_curso_est - Invalid JSON response.

Como quitar mensaje DataTables warning: table id=tabla_curso_est - Invalid JSON response.

anderson_jkanderson_jk Posts: 6Questions: 1Answers: 0
edited September 2021 in General

Buenas, soy nuevo con DataTables y no conozco mucho. Mi problema es que cuando no recibe datos el DataTables arroja DataTables warning: table id=tabla_curso_est - Invalid JSON response. Pero cuando recibe todo normal. El asunto es que cuando se hace un query y si el id es correcto y tiene datos se muestran pero sino tiene le envió un array vacío pero me sigue saliendo el error.
Adjunto DataTable

```
valID = $('#idhiddencurso').val()

var tabla_curso_est = $('#tabla_curso_est').DataTable( {
ajax: {
url: 'crud/crud_aula.php',
type: 'post',
dataType:'json',
data:{opcion:opcion,valID:valID},
dataSrc: '',

},

columns: [
{"data": "id"},
{"data": "estudiantes"},
{"data": "curso"},
{"data": "estado"},
{"defaultContent": "<button type='button' class='btn btn-success btn-sm editar_reporte' ><i class='fas fa-edit'></i></button>"+' &nbsp'+
"<button type='button' class='btn btn-danger btn-sm eliminar_reporte'><i class='fas fa-trash'></i> </button>"},

],

language:{
url:'datatables/spanish.json',
emptyTable: 'No data available in table'
},
dom: 'Bfrtip',
buttons:[
{
extend: 'copy',
text: '<i class="fas fa-copy"></i> ',
titleAttr: 'Copiar Todo',

},
{
extend: 'excelHtml5',
text: '<i class="fas fa-file-excel"></i> ',
titleAttr: 'Exportar a Excel',
className: 'btn btn-success'
},
{
extend: 'pdfHtml5',
text: '<i class="fas fa-file-pdf"></i> ',
titleAttr: 'Exportar a PDF',
className: 'btn btn-danger'
},
{
extend: 'print',
text: '<i class="fa fa-print"></i> ',
titleAttr: 'Imprimir',
className: 'btn btn-info'
},
]

} );
y este seria el PHP de la URL donde trae los datos
<?php
include_once '../bd/bd.php';
$valID = (isset($_POST["valID"]))?$_POST["valID"]:'';
$id1 = (isset($_POST["id1"]))?$_POST["id1"]:'';
$id2 = (isset($_POST["id2"]))?$_POST["id2"]:'';
$estado = (isset($_POST["estado"]))?$_POST["estado"]:'';
$opcion = (isset($_POST["opcion"]))?$_POST["opcion"]:'';
switch ($opcion) {
case 1:
$query = mysqli_query($conexion,"INSERT INTO cursos_estudiantes(id_estudiantes,id_cursos,estado) VALUES('$id1','$id2','$estado')");

        $query = mysqli_query($conexion,"SELECT a.id,concat_ws(' ', e.nombres, e.apellidos) as estudiantes, concat_ws(' ',c.curso,c.seccion) as curso, a.estado FROM cursos_estudiantes as a 
        INNER JOIN cursos as c ON a.id_cursos=c.id_curso
        INNER JOIN estudiantes as e ON a.id_estudiantes=e.id ORDER BY id DESC LIMIT 1");
        while ($res = mysqli_fetch_assoc($query)) {
            $data [] = $res;
        } 
        break;
    case 4:
        $query = mysqli_query($conexion,"SELECT a.id,concat_ws(' ', e.nombres, e.apellidos) as estudiantes, concat_ws(' ',c.curso,c.seccion) as curso, a.estado FROM cursos_estudiantes as a 
        INNER JOIN cursos as c ON a.id_cursos=c.id_curso
        INNER JOIN estudiantes as e ON a.id_estudiantes=e.id
        WHERE a.id_cursos = $valID");
        while ($res = mysqli_fetch_assoc($query)) {

            if (!empty($res)) {
                $data [] = $res;
            }else {
                $data  = array();
            }
        } 


        break;
    default:
        # code...
        break;
}

print json_encode($data,JSON_UNESCAPED_UNICODE);
mysqli_close($conexion);
<?php > ``` ?>

Edited by Colin - Syntax highlighting. Details on how to highlight code using markdown can be found in this guide.

Answers

Sign In or Register to comment.