У меня есть общая функция для всех таблиц данных на стороне сервера, которая принимает объект таблицы, URL-адрес и данные сообщения. Данные публикации состоят из значений из полей выбора, которые находятся в области фильтра.
UTIL.serverDatatable = function (table, api, data) {
var token = "Bearer " + JSON.parse(UTIL.getItemLocalStorage('token'));
return table.DataTable({
"processing": true,
"serverSide": true,
"paging": true,
"ajax": {
url: api,
type: "post",
beforeSend: function (request) {
request.setRequestHeader("Authorization", token);
},
"data": data
}
});
};
И еще одна функция для перезагрузки таблицы данных
UTIL.datatableReload = function(table) {
table.ajax.reload();
};
Это нормально работало до того, как эти функции стали общими. Данные поста менялись при изменении фильтров и после этого вызывалась функция перезагрузки. Но теперь при изменении данных пост не обновляется. Есть ли решение для этого? Как опубликовать измененные данные через вызов ajax?
Это отлично работает, за исключением части данных.
Можете ли вы добавить фрагмент, чтобы имитировать то же самое?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Измените код, как показано ниже
UTIL.serverDatatable = function (table, api, callback) {
var token = "Bearer " + JSON.parse(UTIL.getItemLocalStorage('token'));
return table.DataTable({
"processing": true,
"serverSide": true,
"paging": true,
"ajax": {
url: api,
type: "post",
beforeSend: function (request) {
request.setRequestHeader("Authorization", token);
},
"data": callback
}
});
};
Затем вызовите функцию util, как показано ниже
UTIL.serverDatatable(tablename, apiname, function(data){
data.key= $('#input1').val();
});
А затем вызовите функцию как
UTIL.datatableReload = function(table) {
table.ajax.reload();
};
я не думаю, что это будет работать так, я думаю, вы не можете сделать общую функцию для нескольких данных