0

我正在使用 cakePHP 2.2.1

我有一个目标控制器,其中有一个添加操作。此操作将发布的数据保存到目标表。

add.ctp中使用 jQuery ajax 方法将表单数据发布到上述添加操作。

我想要的是,

  1. ajax 方法将表单数据发布到目标/添加
  2. 目标/添加操作将数据保存到目标表
  3. 使用 $this->Goal->id 获取新插入行的 id
  4. 将此id返回给ajax方法的onSuccess函数

步骤 1、2、3 工作正常。但我不知道如何实现第 4 步。

我知道 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 发布到/goals/add.json,Cake 将识别.json扩展名并结合 .$this->set('_serialize')并返回一个 json 字符串{ 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 回答