zend中的ajax实现

时间:2011-03-17 13:39:07

标签: php ajax zend-framework

我想在zend框架工作中实现ajax功能。所以,请尝试给我一个简单的例子。

2 个答案:

答案 0 :(得分:0)

在zend框架项目中有两种使用ajax的方法。确保您的库文件夹中有ZendX。它可以帮助您使用ajax。

第一种也是最直接的方法是像在任何其他网络项目中一样使用它。将所有java脚本文件复制到/public/js/文件夹中。

在我的项目中,我使用jQuery。所以在你的_initViewHelpers函数中你必须启用jQuery:

ZendX_JQuery::enableView($view);

在你的布局脚本中你可以这样做:

if ($this->jQuery()->isEnabled()){
    $this->jQuery()->setLocalPath($this->baseUrl ().
                            '/js/jquery/jquery.min.1.4.4.js')
    echo $this->jQuery()->uiEnable();
}

并在任何视图脚本中:

$this->jQuery ()->enable ()->addJavascriptFile ( $this->baseUrl () .
                                                '/js/frontend.js' )

另一种方法是让zend创建ajax函数。观看此HOW TO,它从一开始就向您展示如何在zend框架项目中使用ajax。

答案 1 :(得分:0)

进入我的Bootstrap.php

protected function _initJQuery()
{
    $this->bootstrap('view');
    $view = $this->getResource('view');
    ZendX_JQuery::enableView($view);
    $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
    $viewRenderer->setView($view);
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
    $view->jQuery()->setRenderMode(ZendX_JQuery::RENDER_JAVASCRIPT | ZendX_JQuery::RENDER_JQUERY_ON_LOAD);
}
  

你可以看到你需要ZendX   你的图书馆

在Layout.phtml中进入

echo $this->headScript()->appendFile('/js/jquery-1.4.4.min.js')
        ->appendFile('/js/jquery-ui-1.8.10.custom.min.js'); ?>

并且你将全面使用JQuery,然后,你应该期待Ajax响应,就像我做的那样:

private function noLayout() {
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    $viewRenderer->setNoRender();
    Zend_Layout::getMvcInstance()->disableLayout();
}

此函数将禁用布局并且不需要视图,因此您可以从Controller Action执行回显,例如:

public function listAction() {
    $this->noLayout();
        echo json_encode(array('success' => TRUE));
}

这是“我的方式”,如果您发现“更好”或“不同”

,请告诉我