2010-12-21 61 views
0

对于Zend Framework和MVC的概念,我完全不熟悉。我想要做的是创建一个Ajax请求,它将返回我在我的视图(.phtml)文件中指定的数据。Zend MVC中的Ajax调用

我现在的问题是,我的.phtml文件的内容夹在html页脚和标题之间(整个新的HTML页面正在返回)。获取原始数据的最佳方法是什么?解决方案或只是在正确的方向微调将非常感激!

编辑:经过进一步的研究,它看起来像我试图做一个RPC调用,根据这个讲座PDF(幻灯片51),我应该完全绕过MVC为此目的。它是否正确?

回答

3

Heximal的答案是一个良好的开端。更裸机(与一个好办法做到这一点,但简单的)会是这样了以下行动:

function ajaxDataAction(){ 
    $data = getMyDataAsString(); //could be XML, JSON, etc. 
    die($data); //since we're dying, no view or layout rendering happens. 
} 

但不这样做。

相反,应该看看ContextSwitch and AjaxContent view helpers(节的方式在页面中向下约25%)

+0

我的应用程序需要使用大量的Ajax,并且性能是必需的。我认为只渲染一个模板来返回一个JSON内容会有很大的开销,或者不是?如果在控制器中使用类似的东西不是更好(例如在preDispatch方法中):`$ this-> getResponse() - > setBody(json_encode($ this-> data)) - > setHeader('Content-键入','application/json') - > sendResponse()。exit`?我想过只有一个模块处理Ajax请求的可能性,这将是一个好习惯?谢谢。 – JCM 2011-09-09 22:43:34

0
您的ActionController内

试试这个:

$this->_helper->viewRenderer->setNoRender(); 
$this->_helper->layout()->disableLayout(); 
$this->renderScript('myview/myview.phtml'); 

MyView的地方 - 是路径的观点./application/views/scripts/myview

+0

我尝试这样做,也没有工作。我很好奇,如果这是正确的方法,你能检查我编辑的OP吗? – 2010-12-21 16:49:20