1

所以我有一个表单,我有一个带有 CakePHP 后端的 KnockoutJs 应用程序。当我点击 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 应用程序中,我尝试使用 die($this->request->data) 来查看发生了什么,而 JSON 似乎根本没有发布。

4

1 回答 1

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);
    }
于 2012-04-04T16:15:09.517 回答