gpt4 book ai didi

php - Symfony2 Forms - 如何使用动态选择选项

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:15 25 4
gpt4 key购买 nike

我正在处理用于发送通知的表单。在我的表单中,除其他字段外,还有一个输入文件字段。在此字段中,我正在加载 CSV 文件。从 CSV(包含一列电子邮件)中,我使用 https://code.google.com/p/jquery-csv/ 提取数据并将其添加到选择的只读多字段中,并选中所有选项。

注意:我已经使用表单类型(Symfony2 书)创建了表单 - class NotificationType extends AbstractType;表单通过AJAX提交;

1.罢工考虑到选择字段是动态填充的,我决定将它添加到表单构建器中,而是使用 JavaScript 注入(inject)它。

这是一个糟糕的举动,因为在提交表单时,Symfony2 会验证在表单构建器中添加的字段是否与提交的字段完全一致。返回的错误是:This form should not contain extra fields

2。二击从第一次罢工开始,我想看看我是否可以解决这个问题,所以我在表单构建器中添加了选择字段但没有选项,还通过 JavaScript 注入(inject)选项。

仍然没有运气。 Symfony2 还确保您不能提交在添加字段时未添加到表单构建器的选项。返回的错误是:这个值无效

3.三击从 Strike 1 和 2 开始,我猜测使这项工作起作用的唯一方法是在添加字段时在 choices 数组中的表单构建器中添加所有可能的选项。这样字段和选项将对提交有效。

但这不是我认为可行的选择,尤其是因为在选择字段中我期望有 10000 个可能的结果,而在加载 CSV 文件之前我并不知道这些结果。

你能为这个建议任何其他方法吗?

谢谢!

最佳答案

看看如何dynamically modify forms (示例 #3)。

您需要执行此操作,因为表单将根据构建器选项进行验证,因此如果您添加新字段或在呈现时更改其选项,它不会知道。

或者您不将表单映射到模型/实体并自行处理。

关于php - Symfony2 Forms - 如何使用动态选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30075612/

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