[РЕШЕНО] Выпадающий список (form API)

Аватар пользователя Valery.O Valery.O 18 июня 2012 в 18:19
$form['elem'] = array (
   '#type' => 'value',
   '#value' => array(t('Первый'), t('Второй'), t('Третий'))
);

$form['your_elem'] = array (
   '#title' => t('Выберите элемент:'),
   '#type' => 'select',
   '#options' => $form['elem']['#value']
);
 
$form['print_your_elem']['#markup']=t('Ваш элемент:');

Подскажите, как сделать, чтобы в последней строке после "Ваш элемент:" выводилось название выбранного элемента.

Комментарии

Аватар пользователя Valery.O Valery.O 18 июня 2012 в 19:10

А как достать значение из value?
Я пишу $form['your_elem']['#options']
а он мне цифру массива выдает ))) 0, 1 или 2

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 18 июня 2012 в 21:30

ваш $form['elem'] не нужен в данном случае. Этот тип формы служит как скрытое поле и передаёт любое значение в вашу сабмит функцию (сабмит функция не принимает аргументы)

$form['your_elem'] = array (
'#title' => t('Выберите элемент:'),
'#type' => 'select',
'#options' => array('Option 1', 'Option 2'),
);

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 18 июня 2012 в 21:33

В сабмит и валидат функцию проходят ключи массива #options - т.е 0 и 1, если других не указано (например array('opt1' =>'Option 1', 'opt2' => 'Option 2'))

Аватар пользователя Valery.O Valery.O 20 июня 2012 в 15:06

Решил как посоветовал volocuga@drupal.org
'#options' => array('Первый' => 'Первый', 'Второй' => 'Второй'),
теперь всесто непонятных "0" и "1", все понято - "Первый" или "Второй"