首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery表单提交和CakePHP控制器

JQuery表单提交和CakePHP控制器
EN

Stack Overflow用户
提问于 2009-06-24 03:56:17
回答 2查看 2.2K关注 0票数 0

我在我的应用程序中使用了CakePHP和jQuery。

我的jQuery代码是:

代码语言:javascript
复制
$(document).ready(function(){
    var str,fields;
    function showValues() {
        str = $("form").serialize();
        $("#results").text(str);
    }
    $("input").change(showValues);
    showValues();
    $(".submit").click(function (){
        alert(str);
        $.ajax({
            type: "POST",
            url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1",
            data: "str="+str,

            success: function(msg){
                alert( "Data Saved: " + msg);
            }
        });//ajax
        return false;
    });//submit click
});//ready 

而在提交功能中单击的警报显示条目内容,例如.._method=POST&name=a

但是当我发布这个值并在控制器中回收它时,它只显示_method=POST..

我的控制器代码是这样的

代码语言:javascript
复制
function submit1($id = null) {
    echo "in ctrller ".$_POST['str'];
}

如何获取控制器中的整个值并将其保存。或者有什么方法可以检索吗?

EN

回答 2

Stack Overflow用户

发布于 2009-06-24 08:11:06

$.ajax调用的数据参数采用以下格式的字符串:

代码语言:javascript
复制
param1=val1&param2=val2

现在,您已经使用$(“form”).serialize()生成了这种格式的字符串;因此,正确的赋值方法如下所示:

代码语言:javascript
复制
  $.ajax({
    type: "POST",
    url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1",
    data: str
  })

然后,您的控制器可以检查$_POST数组中是否有您要查找的参数。

或者将POST参数打印为查询字符串:

代码语言:javascript
复制
echo http_build_query($_POST);
票数 0
EN

Stack Overflow用户

发布于 2010-08-02 01:20:47

我不知道这是否与您的问题有关(虽然知道Cake,但这是一个很好的机会),但这不是在Cake中传递表单数据的正确方式。您应该做的是使用data[key]作为密钥。Cake将利用它构建一个名为$this->data的数组。如果使用FormHelper构建HTML表单,它会自动将name属性设置为data[Model][attribute],您可以使用$this->data['Model']['attribute']访问该属性,也可以将其传递给保存函数,这才是实际的预期用途。

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

https://stackoverflow.com/questions/1036317

复制
相关文章

相似问题

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