使用表单API时,名称和值不能使用属性设置。名称与表单项的键相关,因此如果
$form['pony'] = $checkbox;
$form['yes'] = $checkbox;
第一个复选框的名称为
pony
而第二个名字是
yes
. 我相信复选框的值总是1,但我不是100%确定。
为了正确地创建这个表单,您应该做的是在表单定义中只创建表单。这样做:
$form = array();
$res = query('SELECT * FROM {mytable}');
while($row = db_fetch_array($res)){
$form[$row['id']] = array('#tree' => TRUE);
$form[$row['id']]['checkbox'] = array('#type' => 'checkbox');
$form[$row['id']]['other_field_1'] = array('#value' => $row['other_field_1']);
$form[$row['id']]['other_field_2'] = array('#value' => $row['other_field_1']);
}
return $form;
执行类似的操作时,可以在表单的主题函数中创建表。在主题函数中呈现表单元素,将为它们提供正确的名称。