0

私はcakePHP2.2.1を使用しています

追加アクションを持つGoalsControllerがあります。このアクションは、投稿されたデータを目標テーブルに保存します。

add.ctp im内で、jQuery ajaxメソッドを使用して、フォームデータを上記の追加アクションに投稿します。

私が欲しいのは、

  1. ajaxメソッドはフォームデータを目標に投稿/追加
  2. 目標/追加アクションはデータを目標テーブルに保存します
  3. $ this-> Goal-> idを使用して、新しく挿入された行のIDを取得します
  4. このIDをajaxメソッドのonSuccess関数に戻します

手順1、2、3は正常に機能しています。しかし、私はstep4を実装する方法を知りません。

私はphpがサーバー側であり、jsがクライアント側であると知っています。とにかく私はこれを達成することができますか?

4

1 に答える 1

2

Jsonビューに関する本のエントリを必ず読んで、次のようなものを実装してください。

// Routes.php
Router::parseExtensions('json');

// Controller
$this->set('id', $this->Goal->id);
$this->set('_serialize', array('id'));

// AppController.php
public $components = array('RequestHandler'); // Or add 'RequestHandler' to the existing list.

次に、 ajax を に投稿する必要があります。Cakeは拡張子を と組み合わせて/goals/add.json認識し、 の行に沿って json 文字列を返します。.json$this->set('_serialize'){ id: 1 }

次に、$.ajax関数で、次のような成功呼び出しを行います。

$.ajax({
    url: '/goals/add.json',
    dataType: 'json'
    // other settings
    success: function(response) {
        alert(response.id); // response contains the returned data
    }
});
于 2012-08-02T11:30:07.103 に答える