У меня есть таблица данных, настроенная как
var table = $(".datatable").DataTable({
processing: true,
serverSide: true,
ajax: {
url: $("#datatable").attr("data-search"),
dataType: "JSON",
complete: function (data) {
$(".total-records").html(data.responseJSON.recordsTotal);
$("#maxPageText").html(`of ${table.page.info().pages} <i class="fa fa-chevron-right" style="font-weight:200;"></i>`);
}
},
});
table.ajax.reload();
Все отлично работает, поиск, сортировка и все. Но я пытаюсь сделать другое текстовое поле, как поиск, который присутствует в модальном. Я пытаюсь отправить запрос ajax и перестроить данные с новыми данными, возвращаемыми из этого конкретного ajax, но, похоже, он не перестраивается с новыми данными.
Это код
$("body").on("click", ".advance-search", function () {
var type = $(this).attr("data-type");
var value = "";
var search = $(this).attr("data-search");
if (type == "tag") {
value = $("#tagSearchInput").val();
} else {
value = $(".input-advance-search").val();
}
$.ajax({
url: search,
method: "GET",
dataType: "JSON",
data: { "type": type, "value": value, "data": table.data().ajax.params() },
complete: function (data) {
console.log(data.responseJSON);
table.clear().rows.add(data.responseJSON.data).draw();
return false;
}
});
return false;
});
Обратите внимание, что я добавил return false
в двух местах, потому что сразу после этого ajax-запроса отправляется другой ajax-запрос, который, кажется, поступает из этой строки table.clear().rows.add(data.responseJSON.data).draw();
через stacktrace.
Может кто-нибудь помочь?