我正在使用jQuery Form Plugin(http://malsup.com/jquery/form/)并尝试将数组发布到要处理的php文件中,但我无法按预期工作。
使用常规jQuery $.ajax
代码示例:
var a = [1,2,3];
$.ajax({
url: "uploader.php",
type: "POST",
data: ({
a: a
})
});
将PHP变量$_POST['a']
输出为
Array
(
[0] => 1
[1] => 2
[2] => 3
)
使用插件,$_POST['a']
的输出是一个等于“1,2,3”的字符串。
我希望插件的行为类似于$.ajax
。
答案 0 :(得分:1)
看到你的代码设置jQuery表单插件会很方便,但是如果你正在进行替换,我会假设它是这样的:
$('#myFormId').ajaxForm({
url: uploader.php,
type: "POST",
data:({
a:a
})
});
没有检查我只是假设“数据”通过jquery Form插件与表单数据合并
我猜ajax表单插件只调用a
上的toString javascript方法 - 这会给出“1,2,3”
要获取JSON字符串,您可以执行JSON.stringify(a)。即:
$('#myFormId').ajaxForm({
url: uploader.php,
type: "POST",
data:({
a:JSON.stringify(a)
})
});
不确定是否有效 - 但值得一试
答案 1 :(得分:0)
您需要将数组转换为字符串,然后在php脚本中解析它
JQuery的
var a = [1,2,3];
$.ajax({
url: "uploader.php",
type: "POST",
data: ({
a: $.param(a);
})
});
PHP
parse_str( $_POST['a'] , $paramsArray );