2010-12-21 58 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