如何使用Zend Framework通过Ajax加载视图?

时间:2012-02-06 05:12:16

标签: php ajax zend-framework

是否可以在zend框架中使用ajax加载视图,这样布局页面不会刷新,只是主要的内容div?

2 个答案:

答案 0 :(得分:5)

使用Ajax上下文切换,您可以将其添加到控制器中的init函数

public function init()
{
 $ajaxContext = $this->_helper->getHelper('AjaxContext');
 $ajaxContext->addActionContext('my', 'html') //my is your action
                ->initContext();
}

html参数是Ajax请求的类型。它也可以是JSON或XML

public function myAction() {
    // get what you are sending to your view : data
    $this->view->data = $data;
}

创建一个视图my.ajax.phtml默认情况下myAction将尝试向其呈现 然后在你的视图中包含my.ajax.phtml(你的主要内容div)

答案 1 :(得分:0)

使用Zend 1.12,我们使用了Zend_Controller_Action_Helper_Json;

<强>控制器:

use Zend_Controller_Action_Helper_Json;

class MyController extends Zend_Controller_Action {
    public function init() {
        Zend_Controller_Action_HelperBroker::addHelper(new Zend_Controller_Action_Helper_Json());
    }

    public function fooAction() {
        $this->getResponse()->setHttpResponseCode(200);
        $this->_helper->json(array('value' => 1));
    }
}

查看:

  • 无视图文件

<强>输出:

{"value":1}

拨打:

http://example/my/foo