【问题标题】:Dynamically modify forms in Symfony2 without Javascript?在没有 Javascript 的情况下动态修改 Symfony2 中的表单?
【发布时间】:2015-02-02 22:59:34
【问题描述】:

我正在阅读How to dynamically Generate Forms Based on user Data 来自 Symfony2 烹饪书。

我正在寻找类似于上述链接的功能。

但是,如果我理解正确,它建议使用 AJAX 来更新表单。

这对吗?

这个例子是我想要的功能:

第 1 步:

Form //Controller locationAction
 ________________
|
|
| Country Select 
|
| |Please select...|
|
|      ____
|     |Next|
 _______________

点击下一步后的期望

  • 提交到同一个locationAction方法
  • 表单出现之前选择的结果。
  • 在所有动态字段都存在之前跳过验证。
  • 出现新的州选择字段,选择取决于用户提交的国家字段。

第 2 步:

|
v

Form //Controller locationAction
 ________________
|
|
| Country Select 
|
|      |U.S.|
|
|  
|      State
|  |Please select ....| //List is displayed that corresponds to their selected country
|
|      ______
|     |Submit|
 _______________

推送提交后

  • 验证 Country 和 State 然后执行取决于首先验证的表单(包括动态字段)的操作。

是否可以在没有 JavaScript 的情况下单独使用Form Subscribers/Form Listeners 以一种形式获得上述结果?

或者我需要使用 JavaScript/创建一个单独的表单吗?

【问题讨论】:

  • 据我所知,没有 JavaScript 是无法动态修改页面内容的。
  • @A.L 当您按下“下一步”时,该页面会在 GET/POST 请求后重新加载。然后动态字段就可以出现了。
  • 严格来说,如果你重新加载页面,那并不是动态
  • @A.L 我们谈论的是不同的背景。我澄清一下,我是指内部框架,而不是请求类型。
  • 好的,我明白了,很抱歉造成误会。

标签: php forms symfony


【解决方案1】:

但是,如果我理解正确,它建议使用 AJAX 来更新 表格。

不,它没有。您可以将表单提交给相同的操作。每一步之后,都是一个新的请求/响应,动态表单的生成是在服务器端处理的,而不是由 javascript。

也许,dynamic-generation-for-submitted-forms 正是您的用例(这是同一指南的另一部分)。

【讨论】:

  • 太棒了,它确实有效。只需确保为动态选项打开验证即可。
猜你喜欢
  • 2010-10-03
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
相关资源
最近更新 更多