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.

Reply via email to