Перезагрузка сервера JQuery Datatable с новыми данными сообщений

У меня есть общая функция для всех таблиц данных на стороне сервера, которая принимает объект таблицы, 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?

я не думаю, что это будет работать так, я думаю, вы не можете сделать общую функцию для нескольких данных

Ahmed Sunny 02.05.2018 14:15

Это отлично работает, за исключением части данных.

arshad 02.05.2018 14:17

Можете ли вы добавить фрагмент, чтобы имитировать то же самое?

Sandesh Gupta 03.05.2018 05:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
1 192
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените код, как показано ниже

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();
};

Другие вопросы по теме