У меня есть две кнопки на моей странице:
> Button A: btn_trendyolStocks
> Button B: btn_trendyolStocksSYNC
Button A
обновляет акции по одному, когда вы задаете такие параметры, как: Product Name, Size, And Color
Теперь я пытаюсь сделать button B
зацикливает вышеуказанную button A's
функцию щелчка и массово обновляет акции.
Проблема заключается в том, что когда я нажимаю Button B
, цикл for запускается немедленно без ожидания Button A's
функция щелчка, поэтому она работает синхронно,Похоже, что все запросы AJAX выполняются одновременно. Я хочу, чтобы мой цикл Button B
ожидал завершения запроса ajax (без установки async: false).
Здесь код:
jQuery(".btn_trendyolStocksUpdate").click(function(e,product,color,size) {
stockCount = jQuery(this).val();
price = jQuery('#inp_trendyolPrice').val();
if(typeof product !== 'undefined')
{
dataObj = {
rowCount: rowCount,
product: product,
size:size,
color:color,
stockCount: stockCount,
};
}
else
{
dataObj = {
rowCount: rowCount,
product: allProducts[jQuery( "#trendyolProduct" ).val()],
size:jQuery( "#trendyolSize" ).val(),
color:jQuery( "#trendyolColor" ).val(),
stockCount: stockCount,
};
}
if(jQuery('#inp_trendyolPrice').val()){
dataObj["price"] = price;
}
jQuery.ajax({
type: "POST",
url: "/wp-content/plugins/promc/templates/updateStock.php",
dataType: 'json',
data: dataObj,
success: function(data)
{
jQuery("#trendyolMonitor").append(data.Sql);
jQuery("#trendyolMonitor").append("<br>");
if(data.numberOfRows == 10000)
{
rowCount = rowCount + 10000;
if(price > 0)
{
jQuery('#btn_trendyolUpdatePrice').trigger('click');
}
else{
if(stockCount > 0){jQuery("#btn_trendyolStocksON").trigger('click');}
else if(typeof product !== 'undefined')
{
jQuery('#btn_trendyolStocksOFF').trigger('click',[product,size,color]);
}
else{
jQuery("#btn_trendyolStocksOFF").trigger('click');
}
}
}
else
{
jQuery("#trendyolMonitor").append("<h3>Tamamlandı!</h3>");
rowCount = 0;
}
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert(XMLHttpRequest.responseText);
}
});
});
jQuery("#btn_trendyolStocksSYNC").click(function() {
//Runs Through Some Arrays, and Gets All Out Of Stock Product Names, Colors, and Sizes.
for(var product in all){
var colors = all[product];
for(var singleColor in colors[0]){
var size = colors[0][singleColor];
for(var index in size){
var singleSize = size[index];
//alert(allProducts[product] + " " + singleColor + " " + singleSize);
jQuery('#btn_trendyolStocksOFF').trigger('click',[allProducts[product],singleColor,singleSize]);
}
}
}
});