1

フォームがあり、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アプリでは、何が起こっているのかを確認するために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 に答える