首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >序列化ajax post的多个CakePHP表单

序列化ajax post的多个CakePHP表单
EN

Stack Overflow用户
提问于 2014-12-31 01:43:12
回答 1查看 959关注 0票数 1

在这种情况下,我已经收到了一个已经构建好的用户界面,其中包含一个选项卡视图,其中每个选项卡都包含一个使用CakePHP表单助手生成的表单。这些表单中的每一个都有自己的id,而前开发人员雏菊在单个提交中将每个表单的ajax请求链接在一起。

客户端仍然希望所有表单同时发布,因此我希望可以像这样序列化多个表单:

代码语言:javascript
复制
var post_data = $("#form-1, #form-2").serialize();
$.ajax({
    type: "POST",
    url: "/places/save_form",
    data: post_data,
    success: function(result) {},
    error: function(result) {}
});

但是,在它发布到的端点上,我似乎从$this->request->数据中得到了一个空数组;而当我序列化单个表单时,它返回了我的所有表单值。

我在控制器中一次也没有在$_POST中得到任何东西,所以它似乎是在到达控制器之前被擦干净的。

有没有办法将多个表单放到一个ajax帖子中,然后在另一端保存它们呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-01 13:57:47

我成功地做到了这样工作:

代码语言:javascript
复制
var post_data = { };
post_data.FormOne = $("#form-1").serialize();
post_data.FormTwo = $("#form-2").serialize();

$.ajax({
    type: "POST",
    url: "/places/save_form",
    data: post_data,
    success: function(result) {
        $(loading_div).remove();
    },
    error: function(result) {
        $(loading_div).remove();
    }
});

在控制器方面:

代码语言:javascript
复制
public function save_form() {
    $FormOne = $this->request->data['FormOne'];
    $FormOneValues = array();
    parse_str($FormOne, $FormOneValues);

    $FormTwo = $this->request->data['FormTwo'];
    $FormTwoValues = array();
    parse_str($FormTwo, $FormTwoValues);

    echo '<pre>'; 
    print_r($FormOneValues);
    print_r($FormTwoValues);
    die();
}

我的问题似乎与在js端正确格式化请求有关,也与在CakePHP控制器端访问请求有关。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27715118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档