#php #zend-framework
#php #zend-framework
Вопрос:
if ($this->getRequest()->isXmlHttpRequest()) {
$this->_helper->layout->disableLayout();
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('view', 'html');
$ajaxContext->initContext();
}
как это на самом деле работает … моя страница получения ajax local.maker/profile/check
я заставил ajax работать нормально, но я не знаю, что редактировать из приведенного выше…
$ajaxContext->addActionContext('???', 'html');
ps .. я запрашиваю json
Ответ №1:
Я использую следующий код для использования помощника контекста AJAX.
В вашем контроллере создайте метод предварительной обработки, чтобы настроить ваши контексты следующим образом:
public function preDispatch()
{
$this->_helper->ajaxContext()
->addActionContext('index', array('json', 'html'))
->addActionContext('anotheraction', 'json')
->initContext();
}
И затем в ваших методах действия используются:
public function indexAction()
{
if ($this->_helper->ajaxContext()->getCurrentContext() == 'json') {
// ajax code here
} else {
// non ajax code here
}
}
Также в вашем ajax-запросе вы должны использовать формат переменной для установки текущего контекста, например
http://www.mydomain.com/index/format/json
чтобы запросить ответ в формате json.
Примечание: Переключатель контекста автоматически отключает макет и представление, любая переменная представления, установленная в контроллере, будет автоматически закодирована в строку json и отправлена.
Я надеюсь, что это поможет
С уважением
Гарри
Ответ №2:
Пожалуйста, ознакомьтесь с примером. В нем есть все, что вы ищете.
addActionContext( <action>, <format>);
Может запрашивать комментарий / обрабатывать / форматировать / json или через переменную запроса. Смотрите пример .