zend getrequest ajax

#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:

Пожалуйста, ознакомьтесь с примером. В нем есть все, что вы ищете.

http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.contextswitch.ajaxcontext

 addActionContext( <action>, <format>);
  

Может запрашивать комментарий / обрабатывать / форматировать / json или через переменную запроса. Смотрите пример .