jQuery Form Plugin将数组作为字符串发布

时间:2013-07-25 09:47:47

标签: jquery ajax jquery-forms-plugin

我正在使用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

2 个答案:

答案 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 );