Drupal Form API: получить заголовок выбранного пункта из выпадающего списка select

Итак, при использовании стандартного элемента формы Select / выпадающего списка с применением Drupal 7 Form API возникает такая проблемка — непонятно, как получить заголовок выбранного посетителем сайта пункта, а не его целочисленный номер. Далее представлен один из самых простых вариантов решения вопроса.

Имеем, следующий код генерации Form (привожу отрывок для полноты картины):

function RedBookCms_MegaSuper_form($form, &$form_state) {
    // ...

    $form['primer_spiska'] = array(
        '#title' => 'Поисковая система',
        '#type' => 'select',
        '#options' => array(
            0 => 'Bing',
            1 => 'Yahoo',
            2 => 'Google',
            4 => 'Yandex',
        ),
    );

    // ...
    return $form;
}

Теперь собственно сам обработчик сабмита, получающий информацию с формы:

function RedBookCms_MegaSuper_form_submit(&$form, &$form_state) {

  // ...

  $primer_spiska = $form['primer_spiska']['#options'][$form_state['values']['primer_spiska']];

  // ...

  drupal_set_message("Спасибо, ваша заявка обработана.");
  return $form;  
}

Вот собственно и все решение вопроса. Используем $form_state['values']['element'] для получения номера выбранного пользователем пункта из селекта, а затем указываем это число для выборки значения в $form['element']['#options'].

P.S. Вроде бы ничего сложного, но не слишком очевидно. На официальной странице с описанием элементов Drupal Form API этого к сожалению нет, или я невнимательно смотрел / читал.

Опубликовано 26-12-2013 в 12:23


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Последние твиты