Javascript 插入到数组的隐藏字段数组

Javascript 插入到数组的隐藏字段数组,javascript,arrays,post,Javascript,Arrays,Post,我有: 在这之后,我喜欢这样: <form id="postform" action="order_total.php" method="POST"> <input type="hidden" name="post_data[]" id="post_data" value=""> </form> var postdata = []; var article = []; article.push('a','b','c'); postdata.pus

我有:

在这之后,我喜欢这样:

<form id="postform" action="order_total.php" method="POST">
<input type="hidden" name="post_data[]" id="post_data" value="">
</form>    
var postdata = [];
var article = [];
article.push('a','b','c');  
postdata.push(article);
article = [];
article.push('a','b','c');  
postdata.push(article);
article = [];
article.push('a','b','c');  
postdata.push(article);
但是当我试图在“order_total.php”中显示“postdata”时,它看起来像一个字符串:

$("#post_data").val(postdata);
$("#postform").submit();
但我需要将这些数据作为数组发布:

Array ([0] => a,b,c,a,b,c,a,b,c)
我做错了什么


另外,使用ajax很好,但我需要使用重定向发布到此页面。

如果
postdata
是一个数组(或对象),并且您尝试将其设置为输入字段中的值,如:

Array ([0] => Array ([0] => a, [1] => b, [2] => c),
[1] => Array ([0] => a, [1] => b, [2] => c),
[2] => Array ([0] => a, [1] => b, [2] => c));
您将获得意外的行为,因为输入字段的值通常只能包含字符串。解决这个问题最简单(也是最安全)的方法是将对象字符串化为JSON:

$("#post_data").val(postdata);

然后在服务器或中间件上再次解码。

我能想到的最简单方法是在客户端使用
Json.stringify()
,然后在PHP中使用
Json\u decode()
(如果您使用的是PHP)
$("#post_data").val(JSON.stringify(postdata));