通过jQuery Ajax传递PHP数组

3
我想通过ajax传递一个数组,但不确定如何实现。
<input type="button" data-array="'.$array.'" id="button" value="click">

我知道我不能在HTML中放置数组,但是我想不到其他的方法来解释我想要实现的目标。

$('#button').click(function(){
    array = $(this).attr('data-array');
    $.ajax({        
        type    : 'POST',
        dataType : 'json',
        url     : 'ajax.php',
        data    : 'array='+array,
        success : function(data) {
            $('#result').html(data);
        }
    });
});

我想把数组变量 $array 传递给 ajax.php。这是否可能,如果是,请问如何实现?我猜与 json 有关?

那么,我想把数组变量 $array 传递给 ajax.php。这是否可能,如果是,请问如何实现?我猜与 json 有关?


你可以将数组序列化,或将其元素放入单独的输入元素中。对于你的示例,序列化看起来很好,甚至可以使用 JSON 格式。然后,你可以通过简单的 json_decode() 调用在 PHP 端解码它。 - arkascha
2
如果你使用 data-array="'. json_encode($array) .'" ...,你将得到 JSON 格式的数据,通常更易于处理。 - adeneo
哦,我也可以将数组implode(压缩),然后在ajax.php中将其explode(展开),这可能是最简单的方法。 - Jack Queen
最简单的方法是使用JSON,这就是我们建议使用它的原因。如果它是有效的JSON,jQuery甚至会自动将其解析为数组-> http://jsfiddle.net/f89oa5kh/ - adeneo
好的,那我该如何通过ajax传递它,在ajax.php文件中又是如何接收它的? - Jack Queen
1
只需执行 data : {array : $(this).data('array')},,jQuery 就会自动将其转换为字符串,并通过 $_POST['array'] 在服务器端获取它。 - adeneo
1个回答

0

你可以将数组存储在会话变量中,而不是在HTML中存储,需要时再调用它。

$_SESSION['dataArray'] = $array;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接