Cómo mostrar u ocultar un botón en datatable de acuerdo al valor json recibido
Cómo mostrar u ocultar un botón en datatable de acuerdo al valor json recibido
hwgaby87
Posts: 1Questions: 0Answers: 0
Link to test case:
Debugger code (debug.datatables.net):
Error messages shown:
Description of problem:
Hola. Deseo crear distintos botones en la última columna del datatable de acuerdo a los valores del json obtenido de la BD.
Quiero que btn_pagarModal1 solo se vea (o esté activo) cuando cantidad > 0;
El datatable:
var tablaSemestre1 = $("#tablaSemestre1").DataTable({
ajax: "<?php echo base_url();?>/cuotaSocial/listarCuotasActivasPrimero",
dom: "Bfrtip",
order: ["1", "asc"],
responsive: true,
lengthChange: false,
autoWidth: false,
columns: [
{}, //Id
{}, //id
{}, //nya
{
"<div class='btn-group'><button type='button' class='btn btn-secondary' data-toggle='tooltip' data-placement='top' title='Modificar' id='btn_modificar'><i class='fas fa-pen'></i></button><button type='button' class='btn btn-success' data-toggle='tooltip' data-placement='top' title='Pagar' id='btn_pagarModal1'><i class='fas fa-money-bill-wave'></i></button></div>",
}
},
],
language: {
sProcessing: "Procesando...",
sLengthMenu: "Mostrar _MENU_ registros",
sZeroRecords: "No se encontraron resultados",
sEmptyTable: "Ningún dato disponible en esta tabla",
sInfo: "Mostrando del _START_ al _END_ de un total de _TOTAL_ registros",
sInfoEmpty: "Mostrando del 0 al 0 de un total de 0 registros",
sInfoFiltered: "(filtrado de un total de _MAX_ registros)",
sInfoPostFix: "",
sSearch: "Buscar:",
sUrl: "",
sInfoThousands: ",",
sLoadingRecords: "Cargando...",
oPaginate: {
sFirst: "Primero",
sLast: "Último",
sNext: "Siguiente",
sPrevious: "Anterior",
},
oAria: {
sSortAscending:
": Activar para ordenar la columna de manera ascendente",
sSortDescending:
": Activar para ordenar la columna de manera descendente",
},
},
});
El Json:
foreach ($socio as $key => $value) {
$result["data"][] = [
$value["idSocios"],
$value["idSocios"],
$value["apellido"] . ", " . $value["nombre"],
$value["cantidad"],
];
}
echo json_encode($result);
Replies
One option is to use
columns.render
similar to this example.If the
cantidad
value can change then userowCallback
to update whether the button is active or displayed. See this example which usescreatedRow
. UserowCallback
instead as it runs each time the row is displayed.Kevin