Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 嵌套$.get in.每个_Javascript_Jquery - Fatal编程技术网

Javascript 嵌套$.get in.每个

Javascript 嵌套$.get in.每个,javascript,jquery,Javascript,Jquery,尝试对jQuery循环函数(.each)实现延迟时遇到问题。 问题是:我有一个包含多列的行列表,用户需要在其中输入数据。 现在,当用户单击保存按钮时,需要逐个检索所有行,并将其数据插入数据库中 第一个get插入数据并返回最后一个插入的id。然后在第二个$get中,最后一个插入的id用作历史记录条目 下面的代码正常工作,唯一的问题是整个过程在嵌套的$.get启动之前完成。因此,第二个$.get插入的所有数据都是相同的 函数getIdNumber从id中删除不需要的字符(例如从第1行到第1行) $(

尝试对jQuery循环函数(.each)实现延迟时遇到问题。
问题是:我有一个包含多列的行列表,用户需要在其中输入数据。
现在,当用户单击保存按钮时,需要逐个检索所有行,并将其数据插入数据库中

第一个get插入数据并返回最后一个插入的id。然后在第二个$get中,最后一个插入的id用作历史记录条目

下面的代码正常工作,唯一的问题是整个过程在嵌套的$.get启动之前完成。因此,第二个$.get插入的所有数据都是相同的

函数getIdNumber从id中删除不需要的字符(例如从第1行到第1行)

$('.data_行')。每个(函数(i){
id=getIdNumber(this.id);
setTimeout(函数(){
日期=$('#dat'+id).val();
customer=$('#cus#'+id).val();
已付金额=$(“#金额+id).val();
备注=$('#rem#'+id).val();
帐户=$('#acc"+id).val();
url=“bin/\u receives.php?addreceives=&date=“+date+”&customer=“+customer+”&amountpaid=“+amount\u paid+”&rements=“+rements+”&paidaccount=“+account;
$.get(url,函数(d){
url2=“bin/_ledgerHandler.php?addaudittrail=&user=“+escape”(“+”)&trantype=“+escape”(“收据-“+d+”)+”)”&val=“+escape(已付金额)+“&category=收据”;
$.get(url2,函数(){
});                    
});         
},1000*i);
});

对于第二个$.get,您需要在第一个get的数据结果中包含第二个$.get需要的所有内容,而不是使用第一个get之前计算的值。这样可以保证第二个$.get的所有数据都与第一个的结果相关


换句话说,不要使用amount_paid In your second$.get的值,而是在数据中随最后一个insert id返回所需的值。

Ajax是异步的,不要忘记这一点。如果你想链接它们,你需要使用回调。你不应该每行发送一个请求,这会带来很大的流量。你不能合并它们吗?我可以,但是由于用户可以将列表扩展到他想要的行数,因此一次发送url中的所有信息会有点棘手。我没有尝试过诚实和感谢不要使用不相关的标签。你的问题与PHP无关,因为你所有的变量都是全局变量。每次迭代都会用新值更新它们。使用
var variableName=…
使它们成为本地的!JavaScript101:尝试过这个建议,但仍然存在相同的问题。好的,终于实现了。我不得不消除延迟,它正常工作。谢谢
$('.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);

 });