1

大家好,这里是我的代码,

index.phtml 代码

<div class="view clearfix" onClick="ajaxinfo()">Info</a></div>

<script>
function ajaxinfo(){

var id = 100;
$.ajax({

    type: "POST",
    url:"http://localhost/zf2/info/format/html",
    data:id,
    success:function(data){alert('ajax data success');},
    error:function(){alert('ajax data failed to fetch');}
    });
return false;

 }
</script>

如您所见,我正在尝试将 id=100 传递给info.phtml页面并尝试从中获取 html 数据info.phtml

让我们假设 info.phtml 为

我不确定在控制器中写什么...我检查了很多教程,但它不适用于 ZF2 之类的

public function init()
{
    $ajaxContent=$this->_helper->helper();
    $ajaxContent->addActionContext('info','html');
    $ajaxContent->initContext();

}

有没有其他方法可以解决这个问题。?

4

2 回答 2

0

要将 AJAX 与 Zend 框架一起使用,我建议您创建一个控制器名称 AsyncController。

从您的 Ajax 请求调用的操作不得显示布局。

例如:

class AsyncController extends Zend_Controller_Action
{
    public function ajaxAction()
    {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        /* Action you want to do*/
        print json_encode($data);
    }
}

在此示例中,$data 必须是已完成操作的结果。

编辑:我没有看到标签

抱歉,我没有看到它是为 ZF2 设计的。此代码适用于 ZF1,但 ZF2 发生了很大变化。我猜这个想法是一样的,但我猜对象真的不同。

于 2013-07-17T12:50:02.753 回答
0

你可以在控制器中使用这样的东西:

     public function addressdeleteAction()
{
    $response = $this->getResponse();    
    $post_data = $request->getPost();    

    $response->setContent(\Zend\Json\Json::encode(array('id' => 100))); 

    return $response;

}
于 2013-07-18T13:35:46.373 回答