Начал осваивать формы в друпале, вот что непонятно. Создал простой список
<?phpfunction createNameSelect(){
return array(
'#type' => 'select',
'#title' => t('Страна'),
'#required' => TRUE,
'#options' =>array(
'1'=>'Ivan',
'2'=>'Petr',
),
);
}?>
Список на форме , отображается нормально. Все выбирается. Но... Когда я в нем выбираю значение. Никаких сабмитов я не нажимаю, а потом обновляю страницу, то ранее выбранное значение в списке, у меня сохраняется. Смотрю файр багом, на код HTML,и вижу что в HTML компоненте select, метка selected стоит на option которое пустое. Т.е.
А выбран ранее выбранный элемент Petr.
Что это за жесть за такая? Как от нее избавиться?
Комментарии
- '#default_value' => xxx
- '#options' => array(t('None')) + $opt
Что вы написали, по-подробнее. Я новичок в друпале.
Новичок - это не значит - не умею читать PHP code исходников.
Уважаемый, это форум где начинающий может спросить, я тебе описал проблему. Такого не в одном фрэймворке я не встречал. Чего ты хочешь епт? Иди убейся. Не хочешь отвечать не надо, тоже мне умник- задрот блин конченый.
Человек Вам ответил ).
- '#default_value' => xxx, означает выбранный элемент списка
- '#options' => array(t('None')) + $opt — все варианты в списке, включая «не выбрано».
Просто в элементах формы за варианты значений (опции) и выбранный вариант (или as default) отвечают разные поля.
Установите модуль devel, для работы с кодом Вам нужно это, а не firebug.
У себя в коде, ставите, например, так:
dsm($form), где $form — форма, к которой Вы прикрепили select ( у которого, кстати, не видно идентификатора, точнее, к чему и куда Вы его крепите, где вызываете свою функцию).
Там (в панели отладчика) прописаны все поля анализируемой структуры (в данном случае, формы).
Предупреждаю сразу — полей оочень много ). Там и увидите, из чего состоит select.
P.S. Использовать такую конструкцию '#title' => t('Страна'), бессмысленно, т.к. Вы же на русском пишете, к чему вызывать функцию локализации t()??
Эволюция не удалась
Спасибо, буду юзать разбираться.