我正在制作一个用于发送通知的表单。在这个表单中,除了其他字段之外,我还有一个文件输入字段。在这个字段中,我加载了一个CSV文件。从CSV中(含有一列电子邮件),我使用https://code.google.com/p/jquery-csv/提取数据,并将其添加到一个具有所有选项选择的select readonly多字段中。
注意:我使用Symfony2书中的Form Types创建了表单 -
这是一个糟糕的举动,因为在提交表单时,Symfony2验证添加到表单构建器中的字段必须与提交的字段完全相同。返回的错误是:此表单不应包含额外的字段。 第二次尝试(Strike two) 从第一次尝试中继续前进,我想看看是否可以解决这个问题,因此我在表单构建器中添加了选择字段,但不带选项,同时还使用JavaScript注入选项。
仍然没有运气。Symfony2也确保您不能提交未添加到表单构建器的选项。返回的错误是:此值无效。 第三次尝试(Strike three) 从第1和第2次尝试中,我猜想使其工作的唯一方法是在添加字段时将所有可能的选项添加到表单构建器中的选择数组中。这样,字段和选项将有效地提交。
但是,这不是我考虑的可行选择,特别是因为在选择字段中,我预计有可能出现10,000个结果,而我直到加载CSV文件时才知道它们。
您能提供其他解决方案吗?
谢谢!
注意:我使用Symfony2书中的Form Types创建了表单 -
class NotificationType extends AbstractType
;表单通过AJAX提交;
第一次尝试(Strike one)
考虑到选择字段是动态填充的,我决定不将其添加到表单构建器中,而是使用JavaScript注入它。这是一个糟糕的举动,因为在提交表单时,Symfony2验证添加到表单构建器中的字段必须与提交的字段完全相同。返回的错误是:此表单不应包含额外的字段。 第二次尝试(Strike two) 从第一次尝试中继续前进,我想看看是否可以解决这个问题,因此我在表单构建器中添加了选择字段,但不带选项,同时还使用JavaScript注入选项。
仍然没有运气。Symfony2也确保您不能提交未添加到表单构建器的选项。返回的错误是:此值无效。 第三次尝试(Strike three) 从第1和第2次尝试中,我猜想使其工作的唯一方法是在添加字段时将所有可能的选项添加到表单构建器中的选择数组中。这样,字段和选项将有效地提交。
但是,这不是我考虑的可行选择,特别是因为在选择字段中,我预计有可能出现10,000个结果,而我直到加载CSV文件时才知道它们。
您能提供其他解决方案吗?
谢谢!