2014-03-05 136 views
0

所以我有3种形式。每个代表一年的四分之一。形式1是过去的季度,形式2是现在的季度和从3是未来的季度。提交多个动态生成的表单与一个提交

这些表单中的每一个都位于for循环中,用于显示表单3次(每月一次)。所以在一天结束时,我想提交9个表格。所以现在这就是我所拥有的。

php while loop to iterate through campaign ids stored in mysql 
{ 
<input type=submit> 
<div id="past"> 
    for each month in past quarter 
    { 
     Form goes here 
    } 
</div> 
<div id="present"> 
    for each month in past quarter 
    { 
     Form goes here 
    } 
</div> 
<div id="future"> 
    for each month in past quarter 
    { 
     Form goes here 
    } 
</div> 
} 

while循环产生的ID,该用户可以选择,在选择的都带有形式UI,在那里他们可以四分之三之间进行选择,并在日期填补对每个在相应的季3个月。

所以现在我有这3个div生成3个表单(都是相同的形式)。您可以在它们和所有布局/格式化作品之间进行切换。

我的问题是如何提交。我想要一个提交按钮,将9个表单中的每一个的所有值发送到另一个php文件,然后将这些值写入我的数据库中的表中。

我不知道如何去做这个使用php/javascript/ajax。或者如果有更好的方法我很乐意听到它。

感谢,

+1

把它放在一个表格中。 –

+0

如果您需要某人为您编写代码,请查看Careers 2.0,elance或其他服务。 AFAIK,对StackOverflow.com的期望是,你已经尝试过一些东西,它没有工作。无论如何,你想要做的事情相当简单,就是像jQuery这样的JavaScript插件,它有两个函数'serializeArray()'和'ajax',可以完全满足你的需求。另外,为什么不只是使用一个表单元素,并把div放在里面;这样你就不需要javascript来提交表单。 – MjrKusanagi

+0

要扩展Mark的建议,请将所有输入元素放在同一对窗体标记中:

...
。当您点击提交按钮时,所有内容都会在一个请求中发送。 – Schien

回答

0

嗯,你不能用一个完整的提交B/C提交一份表格,就防止他人提交。所以,假设每个都有一个适当的动作集,你可以使用jQuery来提交每个Ajax。

var forms = $('form'); 
$.each(forms, function(index, item) { 
    var $item = $(item); 
    var action = $item.attr('action'); 
    var postBody = $item.serialize(); 
    $.post(action, postBody).done(function (response) { 
     // do something with response 
    }); 
});