【发布时间】:2017-02-19 01:36:00
【问题描述】:
我有以下表单,其中包含仍在 WIP 中的数据库中的数据(我缺少一些尚未添加的字段)。 表单在第一个选择中加载数据,并基于该选择,我使用 ajax 填充第二个选择,其中包含基于第一个选择的选项(基本上是与所选值的关联)。然后从那里再次选择具有某些选项的选项等等,最后当我提交表单时,我想根据数据从数据库生成报告。 目前我被第二个字段卡住了,因为我总是得到一个错误:
This value is not valid.
表单类:
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('survey', EntityType::class, [
'class' => SurveyManager::class,
'placeholder' => 'Choose option',
'attr' => [
'class' => 'field-change',
],
])
->add('headquarter', ChoiceType::class, [
'choices' => [],
])
->add('submit', SubmitType::class, [
'label' => 'Save',
])
;
}
我不确定如何修复错误或者我应该如何处理这种类型的表单。你们能帮帮我吗?
根据我这样做的答案
$builder->addEventListener(
FormEvents::PRE_SUBMIT,
function (FormEvent $event) {
$form = $event->getForm();
$data = $event->getData();
$form->add('headquarter', EntityType::class, [
'class' => HeadQuarterManager::class,
'query_builder' => function(HeadQuarterManagerRepository $er) {
return $er->getHeadquarter($data['survey']);
},
]);
}
);
但是我收到了这个错误:
Notice: Undefined variable: data
不太确定如何将数据传递给 getHeadquarter 方法,以便我可以为选择返回一个 id => 名称数组。
【问题讨论】:
标签: php jquery ajax forms symfony