2011-02-03 28 views
0

我正在寫一個自定義模塊,我正在嘗試創建一個表單字段數組,但它似乎並不是我正在做的。如何創建表單域的數組?

這裏是我想要使用的代碼:

for($i = 0; $i < 3; $i++) { 
    $form['contact'][$i]['value'] = array(
    '#type' => 'textfield', 
    '#title' => 'Contact Name', 
    '#size' => 50, 
); 
} 

這樣做,我期待的形式打印領域爲:

<input type="text" value="" size="50" name="contact[0][value]" /> 
<input type="text" value="" size="50" name="contact[1][value]" /> 
<input type="text" value="" size="50" name="contact[2][value]" /> 

相反,它輸出:

<input type="text" value="" size="50" name="0" /> 
<input type="text" value="" size="50" name="1" /> 
<input type="text" value="" size="50" name="2" /> 

回答

4

實際上,您所需要的只是做到這一點,但請記住,這也會更改在窗體sub中返回值的方式mit函數(你會得到一個嵌套數組,而不是$ form_state ['values']中的單獨值)。

$form['contact']['#tree'] = TRUE; 
+0

謝謝!不知道這甚至是一個選擇 – WonderBugger 2011-02-03 15:44:39

0

提供的答案正是我所需要的。這是我的代碼,可能有助於未來的開發人員。

$form['results']['subject'] = array(
    '#tree' => TRUE 
); 

foreach($subjectList as $subject) { 
    $form['results']['subject'][$subject->id] = array(
     '#type'  => 'textfield', 
     '#title'  => $subject->name, 
     '#maxlength' => 3, 
     '#required' => TRUE, 
    ); 
}