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

私が間違っていることは何ですか?

PSはajaxでいいのですが、このページにリダイレクトして投稿する必要があります。

4

1 に答える 1

3

が配列 (またはオブジェクト) の場合postdata、次のように入力フィールドに値として設定しようとします。

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

通常、入力フィールドの値には文字列のみを含めることができるため、予期しない動作が発生します。これを回避する最も簡単な (そして最も安全な) 方法は、オブジェクトを JSON に文字列化することです。

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

次に、サーバーまたはミドルウェアで再度デコードします。

于 2012-11-15T09:01:52.317 に答える