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
DATOS.php
SCRIPT.js
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


0