Zend 和 Jquery(Ajax 帖子)

Posted

技术标签:

【中文标题】Zend 和 Jquery(Ajax 帖子)【英文标题】:Zend and Jquery (Ajax Post) 【发布时间】:2011-06-01 09:10:29 【问题描述】:

我正在使用 zend 框架,我想在不刷新页面的情况下使用 Jquery ajax post 获取 POST 数据以保存。

//submit.js

$(function() 

    $('#buttonSaveDetails').click(function ()
        var details = $('textarea#details').val();
        var id = $('#task_id').val();
        $.ajax(
            type: 'POST',
            url: 'http://localhost/myproject/public/module/save',
            async: false,
            data: 'id=' + id + '&details=' + details,
            success: function(responseText) 
                //alert(responseText)
                console.log(responseText);
            

        );
    );
);

在我的控制器上,我只是不知道如何从 ajax 检索 POST 数据。

public function saveAction() 


    $data = $this->_request->getPost();
    echo $id = $data['id'];
    echo $details = $data['details'];
    //this wont work;

提前致谢。

【问题讨论】:

【参考方案1】:

$.ajaxdataType选项设置为'json',并修改成功回调以从接收到的JSON中读取:

$('#buttonSaveDetails').click(function ()
    var details = $('textarea#details').val();
    var id = $('#task_id').val();
    $.ajax(
            type: 'POST',
            dataType: 'json',
            url: 'http://localhost/myproject/public/module/save',
            async: false,

            // you can use an object here
            data:  id: id, details: details ,
            success: function(json) 
                console.log(json.id + ' ' + json.details);
            
    );

    // you might need to do this, to prevent anchors from following
    // or form controls from submitting
    return false;
);

然后从您的控制器发送如下数据:

$data = $this->_request->getPost();
echo Zend_Json::encode(array('id' => $data['id'], 'details' => $data['details']));

最后,请确保已禁用自动视图呈现,因此返回客户端的唯一输出是 JSON 对象。

【讨论】:

@Zend_Newbie_Dev - 随时:) 对karim79的answer的一些简化:1.$.ajaxurl也可以是相对的(推荐在同一个域内),2.$.ajax的@ 987654330@ 也可以使用$("#formId").serialize() 生成(自动进行 URL 编码)【参考方案2】:

最简单的方法是:

$details=$this->getRequest()->getPost('details');

$id= $this->getRequest()->getPost('id');

希望这对你有用。

【讨论】:

以上是关于Zend 和 Jquery(Ajax 帖子)的主要内容,如果未能解决你的问题,请参考以下文章

Zend 框架自动完成

JavaScript和Ajax部分

原生和jQuery的ajax用法

jquery FormData和Zend Framework 2

如何使 JQuery-AJAX 请求同步

jquery ajax 帖子已取消