我可以用phtml文件管理ajax的结果吗?

发布于 2024-11-01 11:05:10 字数 1040 浏览 0 评论 0原文

我想在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;
    }
}

这是第一个.phtml代码:

<ul><?php foreach ($this->data as $color) : ?><li><?= $color ?></li><?php endforeach; ?></ul>

但是有一个问题! ajax显示的结果是这样的:

{"数据":"[\"红色\",\"绿色\",\"蓝色\",\"黄色\"]"}

并且它不使用first.phtml 文件!

有什么办法解决这个问题吗?

i want manage result of ajax in phtml file, this is my view code that ajax link is there:

<div id="container"></div><?php echo $this->ajaxLink("Link Name",
                      $this->baseUrl() ."/admin/index/first/format/json",
                      array('update' => '#container',
                            'method' => 'POST')); ?>

this is first action code :

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;
    }
}

this is first.phtml code :

<ul><?php foreach ($this->data as $color) : ?><li><?= $color ?></li><?php endforeach; ?></ul>

but there is a prob! result of ajax show like this:

{"data":"[\"red\",\"green\",\"blue\",\"yellow\"]"}

and it don`t use of first.phtml file!

is there any way fo solve this prob?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

Oo萌小芽oO 2024-11-08 11:05:10

答案:我在 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();

,现在一切都正确了:)

answer : i found the answer with Marcin help ;)

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;
    }
}

and i delete every json parameter form ajaxlink and init method

$ajaxContext = $this->_helper->getHelper('AjaxContext');
    $ajaxContext->addActionContext('first', 'html')
                //->addActionContext('format', 'json')
                ->initContext();

every thing is now correct :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文