我在我的应用程序中使用了CakePHP和jQuery。
我的jQuery代码是:
$(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..
我的控制器代码是这样的
function submit1($id = null) {
echo "in ctrller ".$_POST['str'];
}如何获取控制器中的整个值并将其保存。或者有什么方法可以检索吗?
发布于 2009-06-24 08:11:06
$.ajax调用的数据参数采用以下格式的字符串:
param1=val1¶m2=val2现在,您已经使用$(“form”).serialize()生成了这种格式的字符串;因此,正确的赋值方法如下所示:
$.ajax({
type: "POST",
url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1",
data: str
})然后,您的控制器可以检查$_POST数组中是否有您要查找的参数。
或者将POST参数打印为查询字符串:
echo http_build_query($_POST);发布于 2010-08-02 01:20:47
我不知道这是否与您的问题有关(虽然知道Cake,但这是一个很好的机会),但这不是在Cake中传递表单数据的正确方式。您应该做的是使用data[key]作为密钥。Cake将利用它构建一个名为$this->data的数组。如果使用FormHelper构建HTML表单,它会自动将name属性设置为data[Model][attribute],您可以使用$this->data['Model']['attribute']访问该属性,也可以将其传递给保存函数,这才是实际的预期用途。
https://stackoverflow.com/questions/1036317
复制相似问题