PHP - No se muestan los datos en la datatable

 
Vista:
sin imagen de perfil
Val: 15
Ha aumentado su posición en 13 puestos en PHP (en relación al último mes)
Gráfica de PHP

No se muestan los datos en la datatable

Publicado por Ivan (8 intervenciones) el 30/03/2021 08:29:46
Buenos días,

Estoy creando una tabla editable con php y AJAX, he hecho todo pero no me imprime los datos en la tabla, no se por que, por que no me da ningún fallo, no se si tengo algo mal en el código, aclaro que en la parte de SCRIPT.js donde hago el script de editar faltan cosas, ¿Me podéis echar una mano?:

INDEX.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<div class="panel panel-primary">
    <div class="panel-heading">Sample Data</div>
    <div class="panel-body">
     <div class="table-responsive">
      <table id="personal" class="table table-bordered table-striped">
       <thead>
        <tr>
        <th >Incidencia
      </th>
      <th >Departamento
      </th>
      <th >Usuario
      </th>
      <th >Estado
      </th>
      <th >Fecha de apertura
      </th>
        </tr>
       </thead>
       <tbody></tbody>
      </table>
     </div>
    </div>
   </div>
  </div>

DATOS.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
 
 
include('dbconect.php');
 
$column = array("incidencia", "nom_dep", "usuario", "estado","fecha_inicio");
 
$query = "SELECT incidencia.*, usuarios.usuario, departamento.nom_dep,estado.estado FROM incidencia";
 
if(isset($_POST["search"]["value"]))
{
 $query .= '
 INNER JOIN usuarios ON usuarios.id = incidencia.usuario"%'.$_POST["search"]["value"].'%"
 OR INNER JOIN departamento ON departamento.cod = incidencia.nom_dep LIKE "%'.$_POST["search"]["value"].'%"
 OR INNER JOIN estado ON estado.id = incidencia.estado LIKE "%'.$_POST["search"]["value"].'%"
 ';
}
 
if(isset($_POST["order"]))
{
 $query .= 'ORDER BY '.$column[$_POST['order']['0']['column']].' '.$_POST['order']['0']['dir'].' ';
}
else
{
 $query .= 'ORDER BY incidencia asc ';
}
$query1 = '';
 
if($_POST["length"] != -1)
{
 $query1 = 'LIMIT ' . $_POST['start'] . ', ' . $_POST['length'];
}
 
$statement = $conexion->prepare($query);
 
$statement->execute();
 
$number_filter_row = $statement->rowCount();
 
$statement = $conexion->prepare($query . $query1);
 
$statement->execute();
 
$result = $statement->fetchAll();
 
$data = array();
 
foreach($result as $row)
{
 $sub_array = array();
 $sub_array[] = $row['incidencia'];
 $sub_array[] = $row['nom_dep'];
 $sub_array[] = $row['usuario'];
 $sub_array[] = $row['estado'];
 $sub_array[] = $row['fecha_inicio'];
 $data[] = $sub_array;
}
 
function count_all_data($conexion)
{
 $query = "SELECT incidencia.*, usuarios.usuario, departamento.nom_dep,estado.estado FROM incidencia INNER JOIN usuarios ON usuarios.id = incidencia.usuario INNER JOIN departamento ON departamento.cod = incidencia.nom_dep INNER JOIN estado ON estado.id = incidencia.estado";
 $statement = $conexion->prepare($query);
 $statement->execute();
 return $statement->rowCount();
}
 
$output = array(
 'draw'   => intval($_POST['draw']),
 'recordsTotal' => count_all_data($conexion),
 'recordsFiltered' => $number_filter_row,
 'data'   => $data
);
 
echo json_encode($output);
 
?>

SCRIPT.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
$(document).ready(function() {
 
    var dataTable = $('#personal').DataTable({
        "language": {
            "url": "//cdn.datatables.net/plug-ins/1.10.20/i18n/Spanish.json"
        },
        "processing": true,
        "serverSide": true,
        "order": [],
        "ajax": {
            url: "datos.php",
            type: "POST"
        }
    });
 
    $('#personal').on('draw.dt', function() {
        $('#personal').Tabledit({
            url: 'edicion.php',
            dataType: 'json',
            columns: {
                identifier: [0, 'incidencia'],
                editable: [
                    [1, 'nom_dep'],
                    [2, 'usuario'],
                    [3, 'estado'],
                    [4, 'fecha_inicio']
                ]
            },
            restoreButton: false,
            onSuccess: function(data, textStatus, jqXHR) {
                if (data.action == 'delete') {
                    $('#' + data.idp).remove();
                    $('#personal').DataTable().ajax.reload();
                }
            }
        });
    });
 
});
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder