2011-01-19 43 views
0

我正在使用zend框架開展一個項目,我需要通過狀態選擇來加載一個動態Ajax城市。每個狀態都與數據庫中的城市相關聯。Zend Form Dynamic Ajax City Loading

我有一個表格Create.php class Application_Form_Create extends Zend_Form {

public function init() { 

$this->setMethod('POST'); 

... 

$state = new Zend_Form_Element_Select('state'); 
    $state->setLabel('States:') 
     ->addMultiOptions($DataBaseStatesArray); 
    $this->addElement($state); 

$city = new Zend_Form_Element_Select('city'); 
    $city->setLabel('Cities:') 
     ->addMultiOptions($DataBaseCitiesArray); 
    $this->addElement($city); 

$submit = new Zend_Form_Element_Submit('submit'); 
    $this->addElement($submit); 

}

形式加載到查看器

... function createAction(){ $this->view->form = new Application_Form_Create(); }

查看

<?=$this->form;?> 

我如何可以加載基於城市使用zend框架資源選擇狀態?

感謝

回答

2

你可以使用在init方法來你的控制器在運行時更改的行爲的性質,一個Ajax專用動作,它會自動關閉佈局呈現。

控制器

public function init() 
{ 
$ajaxContext = $this->_helper->getHelper('AjaxContext'); 
$ajaxContext->addActionContext('check', 'html'); 
$ajaxContext->initContext(); 
} 

行動

public function checkAction() 
{ 
// code to run upon ajax request 
// ... 
// ... 

$this->_view->result = $result; // pass the result to the view 
} 

你查看作爲

<?php echo $this->result; ?> 

,那麼你只需要確保該視圖中的內容文件可能是一樣容易無論你想要什麼格式,HTML,XML,JSON

在這本書的第5章

更多信息Zend Framework in Action

+0

好吧,我這樣做不過Zend的形式validade阿賈克斯插入的數據和「城市」說,在草垛 – dextervip 2011-02-10 20:27:38