Опция формы Drupal заполняется из цикла - PullRequest
0 голосов
/ 19 января 2012

Я хочу заполнить опцию выбора из цикла

$form['vote']['selected'] = array(
 '#type' => 'select',
 '#title' => 'Select',
 '#name' => 'name',
 ); 

 foreach($loop as $row)
 $form['vote']['selected']['#options'] = array($row->id => $row->name);
 }

 return $form;

Нужна помощь?

1 Ответ

2 голосов
/ 19 января 2012

Это стандартный способ сделать это:

$options = array();
foreach($loop as $row)
  $options[$row->id] = $row->name;
}

$form['vote']['selected'] = array(
  '#type' => 'select',
  '#title' => 'Select',
  '#name' => 'name',
  '#options' => $options
); 

Вы также можете посмотреть на метод fetchAllKeyed запроса к базе данных, который представляет собой удобный ярлык для получения данных из базы данных в массив с ключами, подходящий для списков выбора:

$options = db_query('SELECT id, name FROM {table}')->fetchAllKeyed();

Вышеуказанное будет производить точно так же, как цикл foreach выше.

...