#javascript #html #jquery #ajax #datatables
#javascript #HTML #jquery #ajax #таблицы данных
Вопрос:
У меня есть DataTable с данными, а также есть фильтр даты для него. Когда я запрашиваю данные со значениями фильтра, соответствующие данные поступают в соответствии с фильтром. И я хочу обновить DataTable в соответствии с этими отфильтрованными данными. Я перепробовал много кодов, но у меня ничего не работает.
Мой код:
$('#pending-appointments-daterange').daterangepicker({
opens: 'right',
showWeekNumbers: true
}, function(start, end, label) {
$.ajax({
type: "GET",
url: '/get_pending_appointments',
data: {
from: start.format('YYYY-MM-DD'),
to: end.format('YYYY-MM-DD')
}
})
.done(function(res) {
//$('#pending-appointments-datatable').DataTable().destroy();
//$('#pending-appointments-datatable').DataTable().clear()
//$('#pending-appointments-datatable').DataTable().ajax.json() = res.dataTableData
//$('#pending-appointments-datatable').DataTable().clear().draw();
//$('#pending-appointments-datatable').DataTable().draw();
$('#pending-appointments-datatable').DataTable().clear().draw();
//console.log(res)
//$('#pending-appointments-datatable').url(res).load();
//$('#pending-appointments-datatable').DataTable().ajax.reload();
})
.fail(function(err) {
console.log(err)
});
});
Как я могу перезагрузить datatable с отфильтрованными данными? пожалуйста, помогите мне. Спасибо.
Ответ №1:
Вы должны очистить существующие строки, а затем снова добавить строки, если res — это ваш массив элементов.
$('#pending-appointments-daterange').daterangepicker({
opens: 'right',
showWeekNumbers: true
}, function(start, end, label) {
$.ajax({
type: "GET",
url: '/get_pending_appointments',
data: {
from: start.format('YYYY-MM-DD'),
to: end.format('YYYY-MM-DD')
}
})
.done(function(res) {
$('#pending-appointments-datatable').DataTable().clear();
$('#pending-appointments-datatable').DataTable().rows.add(res);
$('#pending-appointments-datatable').DataTable().draw();
//console.log(res)
//$('#pending-appointments-datatable').url(res).load();
//$('#pending-appointments-datatable').DataTable().ajax.reload();
})
.fail(function(err) {
console.log(err)
});
});
Комментарии:
1. я получаю JSON как res из серверной части, как я могу преобразовать в массив?
2. пожалуйста, приведите пример