我正在尝试编写一个脚本,将在单个页面上提交所有单独的表单。 我首先计算表单的数量,然后使用该计数迭代每个表单并提交它。
在 PHP 页面上每个表单都是这样写的:
<form name="order_driver_'.$j.'" class="order_container" id="save_'.$j.'"method="post" action="../scripts/order_driver_save.php">
然后我使用 JavaScript 来计算每个数并提交它们:
function count_form(){
//Count the amount of outputs
var count = $(".order_container").size();
//Run loop for reults
for(count=count;count>0;count--){
//var save='order_driver_'+count;
document.order_driver+count.submit();
}
}
我遇到的问题是在提交部分:
document.order_driver_ + count.submit();
我无法将 var count
连接到 .order_driver_
。
我想知道如何执行此操作,以便我可以指定要在循环中提交的每个表单名称。
最佳答案
如果你想让它们全部提交,你就必须通过AJAX提交它们,因为一旦提交,浏览器就会跟随请求,刷新页面。因此,即使您将其连接起来,它也只会提交第一个。
更新
虽然我知道建议你使用 jquery 可能会让我大吃一惊,但我认为在这种情况下,它极大地简化了你需要做的事情。
如果您使用jQuery,此代码将实现您的目标.
// #submit-click being whatever you want to initiate the mass form submit
$('#submit-button').click(function() {
$('form').submit();
});
//form submit event handler
$('form').submit(function() {
//get the form and serialize it's data
var form = $(this);
var data = form.serialize();
//submit via AJAX
$.post(form.attr('action'), data);
//prevent the default action of submit
return false;
});
请注意,您不会收到任何已提交的确认信息。
关于php - Javascript动态表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5906298/