如何使用Jquery视图助手和JSON(ZEND)填充select

如何使用Jquery视图助手和JSON(ZEND)填充select,jquery,ajax,json,zend-framework,zend-form,Jquery,Ajax,Json,Zend Framework,Zend Form,我知道zend framework有一些简单的方法可以做到这一点, 但根据zend的说法,我没有找到一个很好的答案或指南 一些答案说明了如何在没有JSON的情况下使用,另一些答案说明了如何在没有Jquery视图助手的情况下使用, 和其他不使用zend框架的 事情太简单了 我们有两个选择:组和子组 当我更改组时,将填充子组 这就是行动: public function getSubgroupAction(){ $model = new MySubgroupModel(); $id

我知道zend framework有一些简单的方法可以做到这一点, 但根据zend的说法,我没有找到一个很好的答案或指南

一些答案说明了如何在没有JSON的情况下使用,另一些答案说明了如何在没有Jquery视图助手的情况下使用, 和其他不使用zend框架的

事情太简单了 我们有两个选择:组和子组 当我更改组时,将填充子组

这就是行动:

public function getSubgroupAction(){

    $model = new MySubgroupModel();
    $id = $this->getRequest()->getParam('id');
    $where = "id = $id";
    $data = $model->fetchAll($where)->toArray();

    $json = Zend_Json::encode($data);
    return $json;
}
这是表格

public function init(){

    $model = new MyGroupModel();
    $options = $model->fetchAll();
    // $options receive a query with id and name

    $group = new Zend_Form_Element_Select('group');
    $group->setLabel('Chose Group')
            ->addMultiOptions($options)
            ->setRequired();

    $subgroup = new Zend_Form_Element_Select('subgroup');
    $subgroup->setLabel('Chose Subgroup')
            ->setRequired();
}
我想知道将请求放到“GetSubbaction”的表单上的什么位置,或者我必须使用jquery视图帮助程序从操作中获取json响应

注意:这不是一个有效的示例

我先感谢大家的关注和帮助。
tkzalot.

首先在init中的控制器中将上下文更改为json

$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('getSubgroup', 'json')       
->setAutoJsonSerialization(false) // or true to automatically do it for you
->initContext();
如果您只想始终呈现json,请禁用布局

$this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender();
在getSubgroup操作中,点击DB并获取所需数据后,对json和echo进行编码

echo Zend_Json_Encoder::encode($result);
如果滚动到此操作,浏览器中将显示json


使用ajax,您可以随时获取json响应,以便在任何需要的地方显示。除了使用控制器发送json响应,还有其他方法可以做到这一点,但这可能是让链接正常工作的最简单方法。

没有人能回答这个问题?我也对答案感兴趣!