Я работаю с одним Datatable()
который дает мне проблемы во время повторно включения этого, уже я протестировал различные методы и они не дали мне произошедшему.
Вопрос состоит, в том, что сайт, загрузив это впервые, загружает меня DataTable()
без какой-либо проблемы.
DataTable
Главный:
var dt = $('#traslados').DataTable({
"order": [[0, "desc"]],
'ajax': " echo base_url('Inicio/obtenerTraslados'); ?>",
bAutoWidth: false,
"lengthChange": false,
"searching": false,
"columns": [
{"data": "ides"},
{"data": "Status"},
{"data": "Folio"},
{"data": "Fecha"},
{"data": "Nombre"},
]
});
Я делаю вид фильтра посредством одного select
и один boton
:
И в момент, который реализует один clic
entonce переходят, чтобы разрушать DataTable
и чтобы инициализировать нового:
$('#creafiltro').click(function () {
dt.clear().destroy();
dt = $('#traslados').DataTable({
"order": [[0, "desc"]],
'ajax': "= base_url('Inicio/obtenerTrasladosf?folio=')?>" + $('#filtro_estatus').val(),
bAutoWidth: false,
serverSide: true,
"lengthChange": false,
"searching": false,
"columns": [
{"data": "ides"},
{"data": "Status"},
{"data": "Folio"},
{"data": "Fecha"},
{"data": "Nombre"},
],
});
});
Если он удаляет меня DataTable()
существующий, но меня инициализирует новый, не загружая данных и не потому что.
Я делал доказательства посредством getJSON
чтобы видеть, что мои данные возвращались правильным способом, и если без проблемы они возвращаются.
$.getJSON('' + $('#filtro_estatus').val(),
function (data) {
console.log($data);
});
Пример: Я выбираю value
8 select
и я оказываю давление на него в Filtrar
и getJSON
меня возвращает следующее:
Dump => array(1) {
["data"] => array(3) {
[0] => array(7) {
["ides"] => string(2) "85"
["Folio"] => string(4) "1234"
["Fecha"] => string(19) "19-03-2019 10:18 AM"
["id"] => string(1) "8"
["Status"] => string(11) "En Traslado"
["Nombre"] => string(7) "Eduardo"
["Sucursal"] => string(14) "Mario Talavera"
}
[3] => array(7) {
["ides"] => string(2) "11"
["Folio"] => string(4) "1411"
["Fecha"] => string(19) "14-03-2019 06:10 PM"
["id"] => string(1) "8"
["Status"] => string(11) "En Traslado"
["Nombre"] => string(5) "Allan"
["Sucursal"] => string(14) "Mario Talavera"
}
[4] => array(7) {
["ides"] => string(2) "42"
["Folio"] => string(4) "1412"
["Fecha"] => string(19) "15-03-2019 06:32 PM"
["id"] => string(1) "8"
["Status"] => string(11) "En Traslado"
["Nombre"] => string(9) "Asistente"
["Sucursal"] => string(14) "Mario Talavera"
}
}
}
Это, потому что array
что возврат $data['data']
:
$data['data'] = $this->Inicio_model->obtenerTrasladosf($id_sucursal, $_REQUEST['folio']);
echo json_encode($data);
Но сама url
что у него есть getJSON
я применяю ее к нему в ajax
DataTable
и оно я не функционирует.
Нужно упоминать о том, что уже эх протестированный с этим:
if($.fn.DataTable.isDataTable('#traslados')) {
dt.clear().destroy();
}
и с этим:
$('#teamTable').dataTable().fnDestroy();
$('#teamTable').dataTable();
И какие-то другие, которые не эх добитый, чтобы они функционировали. Вопрос - в инициализации DataTable
потому что данные esta возвращаясь хорошо.
Реализовывая одну investigaciГіn больше в глубине наконец скажи с нею soluciГіn и состой в том, чтобы добавлять bDestroy: true
к DataTable()
, разрушать это с $("#traslados").dataTable().fnDestroy();
и инициализировать это с DataTable()
и не с dataTable()
:
$('#traslados').DataTable({
"order": [[0, "desc"]],
'ajax': "<? echo base_url('Inicio/obtenerTraslados'); ?>",
bDestroy: true,
bAutoWidth: false,
"lengthChange": false,
"searching": false,
"columnDefs": [
{
"targets": [0],
"visible": false,
"searchable": false
}
],
"columns": [
{"data": "ides"},
{"data": "Status"},
{"data": "Folio"},
{"data": "Fecha"},
{"data": "Nombre"},
]
});
и она acciГіn, сделав clic
, я остаюсь следующего способа:
$('#creafiltro').click(function () {
$("#traslados").dataTable().fnDestroy();
$('#traslados').DataTable({
"order": [[0, "desc"]],
'ajax': "<?= base_url('Inicio/obtenerTrasladosf?folio=')?>" + $('#filtro_estatus').val(),
bDestroy: true,
bAutoWidth: false,
"lengthChange": false,
"searching": false,
"paging": false,
"info": false,
"columnDefs": [
{
"targets": [0],
"visible": false,
"searchable": false
}
],
"columns": [
{"data": "ides"},
{"data": "Status"},
{"data": "Folio"},
{"data": "Fecha"},
{"data": "Nombre"},
],
});
});
Снабжает ссылками: https://stackoverflow.com / questions / 24452270/how-to-reinitialize-datatable-in-ajax