我正在使用zend框架开发项目,我需要通过状态选择加载动态ajax城市。每个状态都与数据库中的城市相关联。
我有一个表单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);
}
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();
}
如何使用zend框架资源根据所选状态加载城市?
由于
答案 0 :(得分: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章的更多信息