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

时间:2012-04-04 03:41:01

标签: javascript ajax json cakephp

所以我有一个表单,我有一个KnockoutJs应用程序,带有CakePHP后端。当我点击Cake的默认“保存”按钮时,我想吐出并发布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
    });
});

在Cake中,我正在尝试在我的控制器中使用Request处理程序,但无济于事:

if($this->RequestHandler->setContent('json', 'application/json')) {
    // standard saving code
}

在我的Cake应用程序中,我尝试过($ this-> request-> data)看看发生了什么,JSON似乎根本没有发布。

1 个答案:

答案 0 :(得分:0)

在我解释你的问题时,这是一个解决方案。在您的控制器中:

    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);
    }