ajax - symfony2 - 如何创建没有值的 "entity"类型的表单字段

标签 ajax forms symfony

我有一个带有 EntityType 字段的表单。从中获取值的表已变大,并且呈现的选择框使页面变大(=加载缓慢)。

我替换了这个:

        ->add(
            'contact',
            'entity',
            array(
                'class' => 'CRMCoreBundle:Contact',
                'required' => false,
                'empty_data' => null,
            )
        )

与:

          ->add(
            'contact',
            'entity',
            array(
                'class' => 'CRMCoreBundle:Contact',
                'choices' => array(),
                'required' => false,
                'empty_data' => null,
            )
        )

渲染一个空的选择框,在前端,我使用 AJAX 来填充和自动完成选择框。

问题是,现在当我提交表单时,它无效。有什么想法吗?

最佳答案

它未通过验证,因为创建表单时表单组件未添加您提交的值。这是为了防止表单接受未经授权的值。

正确的方法是让您的 ajax 请求表单使用表单事件更新后端的选择字段,然后使用正确的值更新显示的选择。

有关表单事件的更多信息,请参见此处 - http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html

关于ajax - symfony2 - 如何创建没有值的 "entity"类型的表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26469536/

相关文章:

symfony 2.4 无法在 prod 环境中获取 doctrine channel

javascript - 从 PHP 回显 HTML 以在网页上的 ajax 请求中显示

asp.net - 对 ASP.NET 页面方法的 Ajax GET 请求?

javascript - 发送数组到post ajax

php - Ajax 调用返回整个页面而不仅仅是回显值

forms - 具有重复文本区域的表单 - 如何获取变量?

Python Mechanize 更改未命名的输入值(已知 id)

symfony - 奏鸣曲管理员 : Let users only edit entities they own (ACL)

javascript - 如何使用 Vuejs 发送电子邮件?

php - 在 Symfony 2.0 中使用 optgroup 选择