Обычно я добавляю закодированный json-объект в тело ответа, однако теперь у меня есть ситуация, которая требует использования помощника действий ContextSwitch.
У меня Zend_Form, который требует трех разных контекстов ответа:
Для каждого контекста у меня есть 3 сценария представления. Хотя два контекста html могут использовать один и тот же сценарий представления, но я не понял, возможно ли это.
Представления контекста html работают нормально, но просмотр json не подбирается. Каков наилучший способ переопределить поведение обратного вызова json post по умолчанию или передать пользовательский закодированный объект в тело ответа?
Лично я не использую «View» для создания контента JSON. В моем init()
меня есть что-то вроде этого:
$ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext->setAutoJsonSerialization(false) ->addActionContext('index', array('html', 'json')) ->initContext();
И в моем indexAction()
:
if ( true === $this->isAjaxJson() ) { $this->_helper->json( array( 'response' => $myResponse, 'message' => $myMesage ) ); return; }
Надеюсь, эта помощь.
это может помочь: $this->_helper->json->sendJson($data);
в то время как,
$data=array('data1'=>'val1','data2'=>'val2');