Создание кнопки «обновить» с помощью jQuery, AJAX и PHP.
Именно этот у меня есть контроль над двумя экземплярами DOM (div) - #sold-container
, а также #totalorderswidget
.
$(document).ready(function() {
$(function() {
$('#orderfeed').on('click', function() {
var orders;
$.ajax({
type: 'POST',
url: 'liveorderwidget.php',
beforeSend: function() {
$('#sold-container').html('<div class="page-loader"></div>');
$.ajax({
url: "totalorderswidget.php",
beforeSend: function() {
$('#totalorderswidget').html('<div class="page-loader"></div>');
},
success: function(orderdata) {
// $('#totalorderswidget').html(orderdata);
orders = orderdata;
}
});
},
success: function(solddata) {
$('#sold-container').html(solddata);
$('#totalorderswidget').html(orders);
}
})
});
});
});
Мне не нравилось, как каждый DIV обновлял и отображал мой page-loader
CSS в разное время, поэтому я решил попробовать собрать данные для передачи и отобразить их одновременно (получить данные из первый вызов ajax, отображать оба на втором).
Это работает как два обычных вызова AJAX, и каждый добавляет html успеха к каждому идентификатору самостоятельно. (раскомментируя // $('#totalorderswidget').html(orderdata);
работает),
, но инициализация переменной типа var orders;
вне функций и попытка поместить данные в вызов успешного завершения (orders = orderdata;
) не работает.
Выполнение console.log
на первом успешном вызове AJAX (orderdata
) возвращает ожидаемый ответ, но попытка использовать его во втором вызове AJAX ($('#totalorderswidget').html(orders);
) не работает, а console.log
возвращает undefined
для переменной order
.
Что я должен изменить, чтобы получить данные из первого успешного вызова функции и перенести эти данные во второй / последний успешный вызов ajax?