データを表の行に整理したい。 Forms APIを使用してそれを行うにはどうすればよいですか?
編集:
次の方法でデータを複数の行に表示します。
row1チェックボックスinfo1 textfield1 info2 textfield2 ....
....
rowN ....
行1 [ここに新しい行フィールドを追加]
...
行5
既存のレコードをキャンセルし、下部のフィールドに入力して新しいレコードを追加できる必要があります。
私が見つけた(小さなフォームで)これを行うsimplest方法は、レンダー配列の#prefix要素と#suffix要素を利用することです。次に例を示します。
$form['foo_fieldset'] = array(
'#type' => 'fieldset',
'#prefix' => '<table>',
'#suffix' => '</table>',
'#tree' => TRUE,
);
$form['foo_fieldset']['header'] = array(
'#markup' => '<thead>
<tr>
<th>A checkbox</th>
<th>A text input</th>
<th>A text input</th>
</tr>
</thead>',
);
for ($i=0;$i<10;$i++) {
$form['foo_fieldset']['row_' . $i] = array(
'#prefix' => '<tr>',
'#suffix' => '</tr>',
);
$form['foo_fieldset']['row_' . $i]['checkbox'] = array(
'#type' => 'checkbox',
'#prefix' => '<td>',
'#suffix' => '</td>',
);
$form['foo_fieldset']['row_' . $i]['text_1'] = array(
'#type' => 'textfield',
'#prefix' => '<td>',
'#suffix' => '</td>',
);
$form['foo_fieldset']['row_' . $i]['text_2'] = array(
'#type' => 'textfield',
'#prefix' => '<td>',
'#suffix' => '</td>',
);
}
これを実行するもう1つの方法(「正しい」方法と呼ばれることもあります)には、テーブルにフォームをレンダリングするテーマ設定関数を作成することが含まれます。このページを見て(テーブルソートオプションは無視してください)、その方法を確認してください。 http://coffeeshopped.com/2010/09/drupal-drag-and-drop-テーブルインカスタムモジュール