2012-01-29 92 views

回答

1

爲什麼在表單類中使用它,而不是在顯示字段時查看(並使用它與ajax)?假設您沒有執行echo $form,並且您正在回顯每個字段(標籤,錯誤,字段)。如果你做一個echo $form,你可能需要寫在窗體類(這是屬於視圖,而不是在課堂上,但這是另一個問題)。只需使用數組屬性參數即可定義小部件。喜歡的東西:

$this->widgetSchema['state'] = new sfWidgetFormDoctrineChoice(array(blabla), array('onchange' => 'someJsFunction')); 

如果你也想限制的選擇,那麼,在表單類(例如與當時美國已在全國選擇框選擇了美國各州只填充選擇),發送上下文的形式作爲一個選項:

在你的行動

$this->form = new whateverForm(array(), array('context' => $this->getContext()));

表單中的

做這樣的事情:

$context = $this->getOption('context'); 

if (!$context instanceOf sfContext) throw new sfException('whateverForm needs the context.. bla bla'); 

$taintedValues = $context->getRequest($this->getName()); 
$country = $taintedValues['country'];` 

這將使您獲得當前submited國家顯示國家只爲該國家。

與縣一樣的東西。