AjaxContext ile _forward kullanma

2 Cevap php

I have a controller setup that uses a whole bunch of different AjaxContent helpers. My init() for the controller looks something like this:

$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('index', 'html')
        ->addActionContext('compose', 'html')
        ->addActionContext('sent', 'html')
        ->addActionContext('recipients','html')
        ->addActionContext('inbox', 'html')
        ->addActionContext('sendsuccess','html')
        ->initContext();

Belirli bir koşul ise composeAction sonunda (), AJAX isteği) (sendsuccessAction yönlendirsin.

Standart _forward ile bunu () yöntemi, bir AjaxContent isteği olarak iletmek için görünmüyor - sayfa standart görünüm şablonu kullanarak işlemek için istiyor.

Herhangi Ben _forward veya başka bir yönlendirme yöntemi kullanmak ancak bir AJAX isteği öylesine uygun eylem bağlam yangınlar isteği tutmak nasıl bir fikir?

2 Cevap

Temelde ne oluyor initContext() yöntemi (hangi bir ajax yanıt ortamını ayarlar) sadece çağrılır olduğunu ilk değil, ikinci, eylemi gönderilir.

Bu etrafında farklı şekillerde bir sürü var.

Öncelikle, bu konu doğrulamak için, arama deneyin

$this->_helper->ajaxContext->initContext();

Lütfen gelen sendsuccessAction. Bu doğru tekrar viewRenderer kurmak için AjaxContext eylem yardımcısı zorlar.

Alternatif olarak, denetleyici preDispatch() yöntemine init() yöntemi $ajaxContext->initContext() için çağrı hareket olabilir. Bu, her eylem gönderilmeden önce çalışmasına neden olacaktır.

Kullanın:

$this->_forward("action","controller","module",array('format'=>'html')); # or ajax or json or whatever