Имя и значение не могут быть заданы с помощью атрибутов при использовании 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;
Делая что-то вроде этого, вы можете создать таблицу в функции темы для формы.Рендеринг элементов формы в функции темы даст им правильное имя.