You need to call setNoRender(true) of the viewRenderer helper inside
your action.
On 1 Nov 2009, at 13:13, tony stamp <[email protected]> wrote:
I have been having some trouble obtaining the html view rendered by
an action
from an AJAX request. Initially, in my ajax-ed controller action, i
was
checking if the request was XmlHttpRequest, and if so, disabling the
layout
so just the portion of the view is returned. This was not working,
so a
little research found pointers towards the AjaxContext helper. I
have set it
up as follows:
Controller:
public function init(){
parent::init();
$this->flashMessenger = $this->getHelper('FlashMessenger');
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('view', 'html')
->initContext();
}
public function viewAction(){
if(!($id = $this->getRequest()->getParam('newsID'))){
$this->_redirect('index');
}
$newsTable = new News_Table();
$select = $newsTable->select();
$select->setIntegrityCheck(false);
$select->from('news')->joinLeft('news_approved',
'news.id =
news_approved.news_id',
array('approver_id' =>
'staff_id', 'date_approved'));
$select->where('id = ?',(int) $id);
$rowset = $newsTable->fetchAll($select);
$this->view->assign('news', $rowset->current());
}
The view script rendered for this is called view.phtml, so as per the
documentation, i copied the content and named a new view script
view.ajax.phtml.
Although the correct action is being called (from jquery, with
format=html
appended to the query string, although it would be nice to assume
that no
format parameter = html by default, unless this can be set
somewhere?) and
loading the correct ajax view script, it is not disabling the
layout, and i
am getting a "page within a page".
Any pointers on what i'm doing wrong?
--
View this message in context:
http://old.nabble.com/Returning-HTML-content-from-AjaxContext-tp26148891p26148891.html
Sent from the Zend Framework mailing list archive at Nabble.com.