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】:将$.ajax
的dataType
选项设置为'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.$.ajax
的url
也可以是相对的(推荐在同一个域内),2.$.ajax
的@ 987654330@ 也可以使用$("#formId").serialize()
生成(自动进行 URL 编码)【参考方案2】:
最简单的方法是:
$details=$this->getRequest()->getPost('details');
$id= $this->getRequest()->getPost('id');
希望这对你有用。
【讨论】:
以上是关于Zend 和 Jquery(Ajax 帖子)的主要内容,如果未能解决你的问题,请参考以下文章