1

我正在使用 jQuery 表单插件 ( 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它一样工作。

4

2 回答 2

1

查看设置 jQuery 表单插件的代码会很方便,但是如果您正在做一个插入式替换,我假设它类似于:

$('#myFormId').ajaxForm({
  url: uploader.php, 
  type: "POST", 
  data:({
    a:a
  })
});

没有检查我只是假设“数据”通过jquery Form插件与表单数据合并

我猜 ajax 表单插件只是调用了 toString javascript 方法a——这会给出“1,2,3”

要获取 JSON 字符串,您可以执行 JSON.stringify(a)。IE:

$('#myFormId').ajaxForm({
  url: uploader.php, 
  type: "POST", 
  data:({
    a:JSON.stringify(a)
  })
});

不确定这会奏效 - 但值得一试

于 2013-07-25T10:19:12.617 回答
0

您需要将数组转换为字符串,然后在 php 脚本中解析它

jQuery

var a = [1,2,3];

$.ajax({
    url: "uploader.php",
    type: "POST",
    data: ({
        a: $.param(a);
    })
});

PHP

parse_str( $_POST['a'] , $paramsArray );
于 2013-07-25T10:19:24.200 回答