I'm not sure that's right - i thought the AjaxContext would handle that, and besides, that means i'd have to place conditionals inside each action to see if the request came from an XHR - if so, disable rendering, if not, carry on as normal. Isn't AjaxContext supposed to be transparent?
Daniel Latter-2 wrote: > > 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. >> > > -- View this message in context: http://old.nabble.com/Returning-HTML-content-from-AjaxContext-tp26148891p26156668.html Sent from the Zend Framework mailing list archive at Nabble.com.
