試圖實現延遲到jQuery的循環功能(。每)當我有麻煩。
問題是:我有一列有多列的行,用戶需要輸入他的數據。
現在,當用戶點擊一個按鈕保存時,所有的行需要逐一檢索,並將其數據插入到數據庫中。
1 GET插入數據並返回最後插入的ID。然後在第二個$ .get中,最後插入的id用作歷史記錄條目。
下面的代碼工作,因爲它應該,唯一的問題是整個過程的嵌套$不用彷徨開始之前被完成。因此,第二個$ .get插入的所有數據都是相同的。
功能getIdNumber從ID刪除不需要的字符(1前從row_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);
});
阿賈克斯是異步的,不要忘記。如果你想鏈接它們,你需要使用回調。 – Bergi
你不應該發送每行一個請求,這是很多流量。你不能把它們組合起來嗎? – Bergi
我可以,但是由於列表可以由用戶擴展到他想要的行數,那麼一次發送URL中的所有信息會有點棘手。我沒有試過它是誠實的,謝謝 –