Я пытаюсь обновить поля ввода внутри datatable в каждой строке, но сначала я беру значение из ячейки и отправляю его в ajax для получения значения, а затем обновляю поле ввода de этим значением.
основная проблема заключается в том, что row (). Every () выполняется быстрее, чем ajax, и обновляется только одна строка.
вот код, который я использую:
updatePrices(0.95);
function updatePrices(freight){
table.rows().every(function () {
var sk = table.cell(this,2).data(); // HERE I GET THE VALUE OF DATTABLES TO SEARCH THE PRODUCT AND ITS PRICE.
var dataString = 'sku='+ sk;
$.ajax({
type: "POST",
url: "searchProductBySku.php",
data: dataString,
dataType: 'json',
cache: false,
success: function(data){
newprice = parseFloat(data[9])+parseFloat(freight);// RETURN NEW PRICE AND SUM THE FREIGHT COST
table.cell(this,9).nodes().to$().find('input').val(parseFloat(newprice).toFixed(2)); // AND CELL WITH INPUT IS UPDATED
}
});
});
alert('Prices were updated, please check them before send this order.');
}