我想在phtml文件中管理ajax的结果,这是我的视图代码,ajax链接在那里:
<div id="container"></div><?php echo $this->ajaxLink("Link Name",
$this->baseUrl() ."/admin/index/first/format/json",
array('update' => '#container',
'method' => 'POST')); ?>
这是第一个动作代码:
public function firstAction()
{
if($this->_request->isPost()) {
// pretend this is a sophisticated database query
$data = array('red','green','blue','yellow');
$jsonData = Zend_Json::encode($data);
$this->view->data = $jsonData;
}
}
这是first.phtml代码:
<ul><?php foreach ($this->data as $color) : ?><li><?= $color ?></li><?php endforeach; ?></ul>
但有一个问题! ajax的结果显示如下:
{“data”:“[\”red \“,\”green \“,\”blue \“,\”yellow \“]”}
并且它不使用first.phtml文件!
答案 0 :(得分:0)
回答:我找到了Marcin帮助的答案;)
public function firstAction()
{
if($this->_request->isPost()) {
// pretend this is a sophisticated database query
$data = array('red','green','blue','yellow');
Zend_Layout::getMvcInstance()->disableLayout();
//$jsonData = Zend_Json::encode($data);
$this->view->data = $data;
}
}
我从ajaxlink和init方法中删除每个json参数
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('first', 'html')
//->addActionContext('format', 'json')
->initContext();
现在每件事情都是正确的:)