我使用sailsjs
从网址的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>
但是我可以确认使用我的网址mydomain.com/prod_master/addsupp?supplier=val&del_lead_time=val2&min_qua=val3将其完整地添加到数据库中 但是在循环中如果我使用window.location = url那么它就不起作用了。
任何解决方案?
注意:如果有任何jQuery解决方案,那么也让我知道。
答案 0 :(得分:1)
在循环中,您无法使用window.location=url
来调用任何网址并执行某项任务。因为javascript执行速度会比你想象的要快。一旦它在window.location中替换了URL,在下一个循环中它将替换它,它将与之前的调用冲突。
更好的方法是使用ajax调用来调用该URL。
给你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>