Php 要使用Symfony在后端填充select选项?

Php 要使用Symfony在后端填充select选项?,php,forms,symfony1,Php,Forms,Symfony1,symfony形式是, 'nation'=>新的sfWidgetFormChoice(数组('choices'=>NationPeer::getAllNation()), 'township'=>new sfWidgetFormChoice(数组('choices'=>TownshipPeer::getAllTownship()), 在选择国家(如印度)时,应填充城镇(城镇位于印度境内)。我不想使用Java脚本 如果我理解正确,您希望根据第一个sfWidgetFormChoice的选择更改第二

symfony形式是,
'nation'=>新的sfWidgetFormChoice(数组('choices'=>NationPeer::getAllNation()),
'township'=>new sfWidgetFormChoice(数组('choices'=>TownshipPeer::getAllTownship()),

在选择国家(如印度)时,应填充城镇(城镇位于印度境内)。我不想使用Java脚本

如果我理解正确,您希望根据第一个sfWidgetFormChoice的选择更改第二个sfWidgetFormChoice。在加载页面时,您可以为第二个表单预先呈现当前选定的值,但是当您更改第一个表单的值时,您也希望更改第二个表单的值,对吗

我很抱歉,但无论如何,你必须依靠Javascript来实现这一点。有了Symfony,您可以使用AJAX助手来解决这个问题,而不必为自己编写许多Javascript而烦恼。您可以使用“观察字段”功能将第二种形式更改为新值。诀窍是每次用不同的值重新启动第二个小部件


有关详细信息,请参见此页:

不幸的是,除非使用JavaScript,否则网页无法对客户端操作作出反应。

在ASP.NET中,我们可以通过打开服务器控件autopostback=“true”(默认情况下,文本框为false)的属性来实现这一点。我们可以用同样的方法在下拉菜单(select/combobox)中进行操作,而不需要javascripts。当选择发生变化时,它将触发设置的事件。(在PARADO中可能会出现,我不知道..从未使用过)Autopostback也是JavaScript。不使用JavaScript的唯一方法是将其拆分为两个表单,提交第一个表单以获取第二个表单的答案。但是ASP.NET提供了一个内置的autopostback事件,如果我们制作两个表单,这将是一个返工,并且会有多个类似的选择。不管怎样,如果根本没有办法(如果联合国禁止使用Javascripts),这都是一个好主意。谢谢乔恩·温斯坦利!您是否已在关闭JavaScript的情况下尝试自动回写?我想你会发现ASP.NET将JavaScript注入到你的页面中。