Пожалуйста, помогите мне с этим ...2 Последовательное JQuery сообщения, второе выполнены первое
Я должен передать значения в PHP-файл для сохранения, но если был выбран флажок, он должен выполнить второй jquery post с использованием возвращаемого значения из первого. Но похоже, что второй пост jquery выполняется первым, вот мой код:
if($action=="save_prod")
{
var remember = document.getElementById('chk');
var $suppid=document.getElementById('supp').value;
var $categlist=document.getElementById('categlist').value;
var $prodname=document.getElementById('prodname').value;
var $proddesc=document.getElementById('proddesc').value;
$.post(baseurl+'index.php/main/newproduct',{"categlist" : $categlist,"prodname" : $prodname," proddesc" : $proddesc,"supp" : $suppid},function(response)
{
$lastid=response;
if($lastid != 0)
{
alert("Product has been saved with ID=" + $lastid);
document.getElementById('resp').style.display='none';
document.getElementById('fade').style.display='none';
window.location.href=baseurl +"index.php/main/mgtprods/?key="+ $suppid;
}
});
if (remember.checked)
{
//alert($lastid);
$.post(baseurl+'index.php/main/newitem',{"prodlist" : $lastid ,"itlist" : 0,"itcost" : 0, "supp" : $suppid, "itname" : $prodname, "itunit" : "pc" },function(response)
{
document.getElementById('resp').style.display='none';
document.getElementById('fade').style.display='none';
//window.location.href=baseurl +"index.php/main/mgtprods/?key="+ $suppid;
});
}
}
Большое вам спасибо!
Вы делаете асинхронные вызовы, вы не можете предсказать, какой из них первыми. Вы можете использовать отложенный объект для установки очереди обещаний. Проверьте http://api.jquery.com/category/deferred-object/ – elclanrs
или положите второй пост в обратном вызове первого. – Archer