我想要使用一些数据来构建表单的选择字段。生成表单的JS(它是jqgrid插件的一部分)在视图中。如何将控制器中的数据导入javascript,以便我可以使用它?
为了让工作变得有效,我尝试了以下内容......
在控制器中,我创建了一个动作来返回一些示例数据:
public function testAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$a = "0:Select";
return Zend_Json::encode($a);
}
在视图中,我对该操作进行了ajax调用:
var testselect = $.ajax({
url: '/admin/sites/test',
dataType: "json",
complete: function(data) {
console.log(data);
}
});
这将返回一个XMLHTTPRequest对象,该对象部分包含:
responseText:""
status:200
statusText:"OK"
responseText不应该是对/admin/sites/test
的调用返回的内容吗?
在我看来,这就是发生的事情:
$a
的内容进行编码并将其返回complete
的{{1}}回调函数会将结果记录到控制台,并且testselect
中的内容应为$a
。我在哪里误解了这个?有一个更好的方法吗?就像,控制器是否可以将所需的数据传递给视图对象,然后我以某种方式在javascript中访问它(虽然如何,不进行ajax请求或将数据放入某些超级全局,如$ _SESSION我不知道)?
感谢任何帮助。
答案 0 :(得分:2)
试试这个:
public function testAction() {
$data = array('firstname' => 'Benny', 'surname' => 'Hill');
$this->_helper->json($data);
}
的部分