массив чекбоксов и фиилдсет [РЕШЕНО]

Главные вкладки

Аватар пользователя Alexmelin Alexmelin 14 сентября 2011 в 11:32

У меня есть несколько чекбоксов завернутых в филсет.

$form['n'] = array(
    '#type' => 'fieldset',
    '#title' => 'Устройства',
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
);
while(($row = mysql_fetch_array($result))){
 $q2=$row["nid"];
 $form['n']['copy'.$q2] = array(
  '#type' => 'checkbox',
  '#title' => t('Send me a copy.'),
);

Мне нужно пробежаться по ним и выбрать их занчение. Интуитивно понимаю, что по ним можно пробежаться с помощью foreach-а используя fieldset в который они запиханы.
Что-то типа этого псевдокода:

$t1=0;
foreach ($tform as $form_state['n'])
{
$t1++;
}

Как мне пробежаться по чекбоксам?
конечно можно типа этого

for($i=0;$i<10;$i++)
{
if ($form_state['values']['copy'.$i] == 1)
$t1++;
}

но сам понимаю, что это тупо.

Комментарии

Аватар пользователя Alexmelin Alexmelin 27 сентября 2011 в 18:22

Решил:

.....
$form['table'] = array('#tree' => true,'#theme' => 'tabular_form', );

$result = db_query("SELECT name, uid, mail from {users}");
while(($row = mysql_fetch_array($result))){
 $q2=$row["uid"];
$form['table']['data'][$q2]['chosen'] = array('#type' => 'checkbox','#title' => t(''),);
}

.......
//обход этих чекбоксов
foreach (element_children($form['table']['data']) as $key)
{
 drupal_set_message($form_state['values']['table']['data'][$key]['chosen']);
}
}