2009-11-21 34 views
0

symfony的形式是, 'nation' =>new sfWidgetFormChoice(array('choices' => NationPeer::getAllNation())), 'township' =>new sfWidgetFormChoice(array('choices' => TownshipPeer::getAllTownship())), 關於選擇國家(如印度),它應該居住在鄉鎮(印度的鄉鎮)。我不想使用Javascripts!使用Symfony填充後端選擇選項?

回答

1

不幸的是,除非使用了JavaScript的網頁不能反應到客戶端的操作。

+0

在ASP.NET中,我們可以通過打開服務器控件autopostback =「true」的屬性(默認情況下它爲false用於文本框)來做到這一點。 我們可以通過下拉(select/combobox)來完成,沒有javascripts。當選擇發生變化時,它將觸發設定的事件。 (可能在PARADO中,我不知道..不用它..) – 2009-11-23 07:51:39

+0

Autopostback也是JavaScript。沒有JavaScript的唯一方法就是將它分成兩種形式,提交第一個以獲得第二個答案。 – 2009-11-24 12:11:12

+0

但ASP.NET提供了一個內置的autopostback事件,如果我們做兩種形式,它將是一個返工,並且會有多種選擇。任何方式,如果有任何現在(如果Javascript被聯合國禁止),這是一個好主意。 感謝Jon Winstanley! – 2009-11-25 13:31:49

0

如果我理解正確,您想更改第二個sfWidgetFormChoice,具體取決於第一個sfWidgetFormChoice的選擇。在加載頁面時,可以預先渲染第二個窗體的當前選定值,但是當您更改第一個窗體的值時,還想更改第二個窗體的值,對嗎?

對不起,但以某種方式,你必須依靠Javascript來做到這一點。使用Symfony,您可以使用AJAX幫助程序來解決此問題,而不會因爲您自己寫入很多Javascript而煩惱。您可以使用'observe_field'功能將第二個表單更改爲新值。訣竅是每次重新渲染第二個Widget時使用不同的值。

詳細信息請參閱此頁:http://www.symfony-project.org/book/1_2/11-Ajax-Integration#chapter_11_sub_ajax_driven_forms