将数据保存在CakePHP中,并通过AJAX同时发布JSON?
问题描述:
所以我有一个表单,并且我有一个KnockoutJs应用程序,带有一个CakePHP后端。当我点击Cake的默认“保存”按钮时,我想吐出并发布JSON以及标准表单数据。将数据保存在CakePHP中,并通过AJAX同时发布JSON?
下面是我在我的JS至今:
$('input.saveProgram').click(function() {
var theJson = ko.mapping.toJSON(pvm, mapping);
$.ajax({
url: 'http://localhost/cake/programs/edit',
dataType: 'json',
type: 'POST',
data: theJson
});
});
蛋糕,我试图使用请求处理程序在我的控制器,但无济于事:
if($this->RequestHandler->setContent('json', 'application/json')) {
// standard saving code
}
在我的Cake应用程序中,我试过了($ this-> request-> data),看看发生了什么,而JSON似乎根本没有发布。
答
下面是解释你的问题的解决方案。在您的控制器中:
if($this->RequestHandler->isAjax()){
// "spit" out json
echo $this->data;
//decode data into an array
$decodedData = json_decode($this->data);
//standard saving code would
$this->Model->save($decodedData);
}