php / zend / json:如何获取视图然后将其作为json对象传递?

时间:2011-08-21 11:39:54

标签: php json zend-framework

在视图中,有这个基本的javascript / jquery:

$('#jsoncallbtn').click(function() {
     $.post('/mycontroller/json', {
          someint: 123,
          somestr: 'string'
     }, function(datafromserver) {
          alert(datafromserver.data1); // prints "test"
          alert(datafromserver.data2); // prints "null"
     }, "json");
});

在服务器端:

public function jsonAction()
{
    $jsonArray = array('data1' => 'test',
                       'data2' => $this->render('anotheraction'));
    $this->_helper->json($jsonArray);
}

有没有办法渲染另一个动作视图并将其作为json对象的一部分发送回javascript?

2 个答案:

答案 0 :(得分:2)

听起来像Action View-Helper可以胜任。

答案 1 :(得分:1)

您可以创建一个单独的Zend View实例,并将视图的输出添加到JSON数组中。例如:

$view = new Zend_View();
$view->variable = "testing 123";
$html = $view->render('path/to/view/file.phtml');
$jsonArray["html"] = $html;
Zend_Json::encode($jsonArray);