Php Symfony 2在用户站点上动态地向表单添加字段

Php Symfony 2在用户站点上动态地向表单添加字段,php,jquery,forms,symfony,Php,Jquery,Forms,Symfony,我正在做调查包。其目标是为用户提供一个全面工作的调查系统。 我已经准备了一个后端,它允许您创建调查、添加问题(打开文本、单选按钮、复选框)、是否需要提出问题、激活调查、生成令牌以及通过电子邮件发送带有令牌的调查链接。 当然,我也有前端显示调查和保存答案。 现在我想补充另一种可能性。带有答案(收音机或复选框)和注释的问题。例如: 你有狗吗 对 没有 如果用户选择“是”,则应出现带有问题“狗的名字是什么?”的附加字段,并允许用户输入狗的名字。 如果用户选择“否”,则不会发生任何事情 这样简单的问

我正在做调查包。其目标是为用户提供一个全面工作的调查系统。 我已经准备了一个后端,它允许您创建调查、添加问题(打开文本、单选按钮、复选框)、是否需要提出问题、激活调查、生成令牌以及通过电子邮件发送带有令牌的调查链接。 当然,我也有前端显示调查和保存答案。 现在我想补充另一种可能性。带有答案(收音机或复选框)和注释的问题。例如:

你有狗吗

  • 没有
如果用户选择“是”,则应出现带有问题“狗的名字是什么?”的附加字段,并允许用户输入狗的名字。 如果用户选择“否”,则不会发生任何事情

这样简单的问题可以隐藏在字段中,但如果我有20个问题包含这样的“附加”信息呢

你知道symfony有什么机制可以让我这么做吗?
我曾尝试使用监听器,但无法创建任何灵活和通用的内容(我可以使用带有复选框的问题,并且一个问题中的某些答案可以包含其他字段,而其他字段则不必如此)。

我感觉您不能仅使用
表单类型和表单事件监听器来完成此操作。如果您的目标是根据用户在同一表单中的选择显示/隐藏附加问题,那么您还需要使用一些javascript。
FormType
仅生成表单字段(以及任何嵌入/嵌套表单)。所有其他UI交互或动态验证都应使用JavaScript和FormEvent侦听器进行

我要做的是让一个事件侦听器将属性(即,
数据具有附加的
)添加到所有问题单选框/复选框(具有附加的问题/字段)。然后我会有一个jquery
on()
监听器,它检查收音机/复选框是否被选中/取消选中,并根据状态显示/隐藏其他字段。您应该能够对其进行抽象,并使其成为一个通用javascript,可用于所有“附加问题”

然后,我将创建事件侦听器来检查提交的表单是否有效(即,如果您有需要插入一些文本的附加问题等等)

另一种方法可能是研究一些“多步骤表单包”。其中一些可能已经实现了类似的选项,这可能有助于您的开发