我使用sailsjs从URL的GET参数(mydomain.com/prod_master/addsupp)插入数据。
页面是/prod_master/addsupp,它接受要插入数据库中的GET参数。
在javascript中,我需要执行循环并插入多个记录,下面是我使用的javascript代码:
<script>
for(var i=2;i<(rCount);i++)
{
supplier=tbl.rows[i].cells[3].children[0].value;
del_lead_time=tbl.rows[i].cells[4].children[0].value;
min_qty=tbl.rows[i].cells[5].children[0].value;
window.location="/prod_master/addsupp?supplier="+supplier+"&del_lead_time="+del_lead_time+"&min_qua="+min_qty;
}
</script>但是,我可以确认,使用我的url mydomain.com/prod_master/addsupp?supplier=val&del_lead_time=val2&min_qua=val3,它完美地将记录添加到数据库中,但是循环中,如果我使用window.location=url,那么它就不能工作。
有解决办法吗?
注:如果有任何jQuery解决方案,那么也让我知道。
发布于 2014-05-14 11:31:27
在循环中,您不能使用window.location=url调用任何url并执行一些任务。因为javascript的执行速度比你想象的要快。一旦它替换了window.location中的URL,那么在下一个循环中它将替换相同的URL,并且它将与以前的调用冲突。
更好的方法是使用ajax调用调用该URL。
我给你用做jQuery请求。编写的psudo代码
<script>
for(var i=2;i<(rCount);i++)
{
supplier=tbl.rows[i].cells[3].children[0].value;
del_lead_time=tbl.rows[i].cells[4].children[0].value;
min_qty=tbl.rows[i].cells[5].children[0].value;
urlToCall="/prod_master/addsupp?supplier="+supplier+"&del_lead_time="+del_lead_time+"&min_qua="+min_qty;
$.get(urlToCall, function(response){
console.log(response); //you might want to see returned response
});
}
</script>https://stackoverflow.com/questions/23653381
复制相似问题