это должно быть тривиально, но я не могу полностью понять параметр «data» функции «ajax» jQueryDatatables. Документация описывает
function ajax( data, callback, settings )
, где «данные» - это «Данные для отправки на сервер». Отлично.
В этом минимальном примере
<form id="form" name="form">
<input name="test" value="1" />
</form>
<button id="button">Search</button>
<table id="table">
<thead>
<tr>
<th>Position</th>
<th>Code</th>
<th>Description</th>
<th>Quantiy</th>
</tr>
</thead>
</table>
Я загружаю данные, только когда я нажимаю кнопку «Поиск». Моя цель - отправить всю сериализованную форму на сервер
var initialized = false;
$(document).ready(() => {
$('#button').click(() => {
$('#table').DataTable().ajax.reload();
});
$('#table').DataTable({
ajax: (data, callback) => {
// *** HERE I READ DATA TO BE SENT ***
loadData($('#form').serialize()).then((dataReceived) => {
callback(dataReceived);
});
},
columns: [
{ data: 'position' },
{ data: 'code' },
{ data: 'description' },
{ data: 'qty' }
],
initComplete: () => initialized = true
});
});
function loadData(searchData) {
return new Promise((resolve) => {
if (!initialized) {
resolve({ data: {} });
}
else {
$.ajax({
url: 'http://127.0.0.1:5500/data.txt',
method: "GET",
dataType: 'json',
data: searchData,
success: json => resolve({ data: json.data })
});
}
});
}
Это работает. Но я понял, что я не использую параметр "data" jQuery Datatables. Я предполагаю, как мне его использовать и как передать значение. Спасибо.