尝试对 jQuery 循环函数 (.each) 实现延迟时遇到问题。
问题是:我有一个包含多列的行列表,用户需要在其中输入他的数据。
现在,当用户单击按钮保存时,需要一一检索所有行并将其数据插入数据库。
第一个 get 插入数据并返回最后插入的 id。然后在第二个 $.get 中,最后插入的 id 用作历史条目。
下面的代码可以正常工作,唯一的问题是整个过程在嵌套 $.get 开始之前完成。所以第二个 $.get 插入的所有数据都是一样的。
函数 getIdNumber 从 id 中删除不需要的字符(例如从 row_1 到 1)
$('.data_row').each(function(i){
id = getIdNumber(this.id);
setTimeout(function() {
date = $('#dat_'+id).val();
customer = $('#cus_'+id).val();
amount_paid = $('#amt_'+id).val();
remarks = $('#rem_'+id).val();
account = $('#acc_'+id).val();
url = "bin/_receipts.php?addreceipts=&date="+date+"&customer="+customer+"&amountpaid="+amount_paid+"&remarks="+remarks+"&paidaccount=" + account;
$.get(url, function(d){
url2 = "bin/_ledgerHandler.php?addaudittrail=&user="+escape("<? echo $_SESSION["user_id"]; ?>")+"&trantype="+escape("Receipt - "+d+"")+"&val="+escape(amount_paid)+"&category=receipts";
$.get(url2, function(){
});
});
}, 1000*i);
});