2012-06-19 22 views
0

我有一個PHP類,它有8個屬性 和一個HTML表單,每個對象有40個(8 * 5)文本框,所以用戶可以一次輸入5個對象的數據。只填寫字段的PHP表單處理

對於每組盒子,我想創建一個類的對象並將其保存到我的數據庫中。例如,如果用戶填寫了10個盒子(兩套),則應創建並保存兩個對象。

+3

那麼你的問題是什麼? [你有什麼嘗試?](http://www.whathaveyoutried.com/) –

+3

你是不是在你的表格上填寫一些檢查項目,確定填寫了多少個字段......還有,爲什麼有這麼多字段。最初只顯示5個字段,並提供一個「添加另一個用戶」按鈕,單擊時會再創建5個字段。這會讓你更好的控制。 –

回答

1

如果我理解正確的話,這裏是HTML表單的例子:

<form action="" method="post"> 
    <fieldset> 
    <legend>Group 1</legend> 
    <div> 
     <input type="text" name="groups[0][first_name]" /> 
    </div> 
    <div> 
     <input type="text" name="groups[0][last_name]" /> 
    </div> 
    </fieldset> 

    <fieldset> 
    <legend>Group 2</legend> 
    <div> 
     <input type="text" name="groups[1][first_name]" /> 
    </div> 
    <div> 
     <input type="text" name="groups[1][last_name]" /> 
    </div> 
    </fieldset> 

    <fieldset> 
    <legend>Group 3</legend> 
    <div> 
     <input type="text" name="groups[2][first_name]" /> 
    </div> 
    <div> 
     <input type="text" name="groups[2][last_name]" /> 
    </div> 
    </fieldset> 
</form> 

注重字段名,字段如何grupped。提交表單這樣,以後你的全局變量$ _POST數組包含$ _ POST [「團體」]以下結構的陣列:

Array 
(
    [0] => Array 
     (
      [first_name] => 
      [last_name] => 
     ) 

    [1] => Array 
     (
      [first_name] => 
      [last_name] => 
     ) 

    [2] => Array 
     (
      [first_name] => 
      [last_name] => 
     ) 

) 

您可以輕鬆地處理與代碼這樣的數據是這樣的:

foreach ($_POST['groups'] as $group) { 
    $group = array_filter($group); 

    if (!empty($group)) { 
    // do something with group 
    } 
} 

這個小例子遍歷所有提交的組。 array_filter()函數將拋棄每個$ group數組中的所有空值,而!empty(...)將確保$ group不爲空。