将数据保存在CakePHP中,并通过AJAX同时发布JSON?

将数据保存在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); 
    }