gpt4 book ai didi

php - symfony ajax 表单动态修改

转载 作者:可可西里 更新时间:2023-10-31 22:51:42 25 4
gpt4 key购买 nike

我有以下表格,其中包含来自数据库的数据,它仍然是 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 => name 数组。

最佳答案

当您运行函数 $form->isValid() 时,它会检查它在 buildForm 函数中构建的表单。任何不存在的额外字段/值都会导致此错误。

您可以使用 form events 更改此行为.

关于php - symfony ajax 表单动态修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39961520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com