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>

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

PORNOSEKSXXX

  • Иван: к записи Привет всем, доброго времени суток! Я излазил весь »
  • Александер: к записи Потом пригляделся, вроде Вы не это имели в виду и »
  • Александер: к записи У Вас не русифицируется, потому что не везде включ »
  • Администратор: к записи Это надо использовать функции вашей CMS. »
  • Alex: к записи Ребят, а подскажите пожалуйста, как реализовать с »
  • Владимир: к записи А как теперь будет выглядеть ссылка для перехода н »
  • Администратор: к записи Не знаю. »

Статистика спама

Akismet заблокировал 33 450 спамеров

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

Твиты пользователя @red_book_cms