#perl #html-formfu
#perl #html-formfu
Вопрос:
Я пытаюсь понять структуру данных, необходимую для заполнения формы значениями элемента ‘select’ (параметры).
Когда я дамп (Data::Dumper) объекта FormFu, я вижу, что структура объекта выглядит следующим образом:
'name' => 'EmailDL',
'_options' => [
{
'label_attributes' => {},
'value' => 'm',
'container_attributes' => {},
'label' => 'Male',
'attributes' => {}
},
{
'label_attributes' => {},
'value' => 'f',
'container_attributes' => {},
'label' => 'Female',
'attributes' => {}
}
],
Увидев это, я решил, что способ структурирования $form_input (будучи таким $form_input = %cgivars
) будет примерно следующим:
'Firstname' => 'Faisal',
'EmailDL' => [
{
'value' => 'myvalue',
'label' => 'mylabel'
}
],
Однако, похоже, это не работает. Я обнаружил, что $form_input
правильное структурирование, а затем выдача $fu->default_values($form_input)
должны быть простыми и эффективными, за исключением этого случая, когда я пытаюсь включить подструктуру select / options.
Итак, вопрос в том, как я должен структурировать ‘EmailDL’ выше, чтобы правильно заполнять параметры ‘select’ при выполнении $fu->default_values($form_input)
или $fu->process($form_input)
?
Ответ №1:
Чтобы задать параметры, вы используете вызов options,
$fu->get_all_element('EmailDL')->options([ [ 'myvalue', 'mylabel' ],
[ 'val2', 'label2' ] ]);
Если затем вы хотите установить одно из этих значений, вы можете использовать default_values.
$fu->default_values({ EmailDL => 'val2' });
Дополнительная справка доступна здесь, в документации Element::Group. Обратите внимание, что примеры кода приведены в тексте справки.