2

我有:

<form id="postform" action="order_total.php" method="POST">
<input type="hidden" name="post_data[]" id="post_data" value="">
</form>    

在一些javascript函数中,我填充了一个这样的数组:

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

在此之后我会这样做:

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

但是当我试图在“order_total.php”中显示“postdata”时,它看起来像一个字符串:

Array ([0] => a,b,c,a,b,c,a,b,c)

但我需要将这些数据作为数组发布:

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

我做错了什么?

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

4

1 回答 1

3

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

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

你会得到意想不到的行为,因为输入字段的值通常只能包含字符串。解决这个问题的最简单(也是最安全)的方法是将对象字符串化为 JSON:

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

然后在服务器或中间件中再次对其进行解码。

于 2012-11-15T09:01:52.317 回答