2014-03-05 193 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 
    }); 
});