2

ajaxリクエストで配列を渡そうとしていますが、どうやらうまくいきません...

        $.post("process.php", array,
            function(data) {
                document.getElementById("output").innerHTML = JSON.parse(data);
            });

私の質問は、プロセス ファイルで送信されたデータをどのように使用するかです。
配列は次のように構築されます[key (0/1/2...)] => ["prod_id"]。IDが異なります。
私はどこかで使用$_POST["key"];するとうまくいくと読みましたが、そうではありません。

プロセスファイルにある配列をそのまま取得できればさらに良いでしょう。

process.php(非常に基本的なものです。機能しているかどうかを確認するためだけです。):

<?php print($_POST["test"]); ?>

4

4 に答える 4

2

配列要素のオブジェクトを作成する必要があります。例えば:

次のようにすることもできます:

{ 'key[]': [1, 2, 3] }

また

{ key: [1,2,3] }

$ .post()についてもっと読む

于 2012-06-24T14:26:51.240 に答える
2

{data: array}の代わりに合格してみてくださいarray。AJAX呼び出しはオブジェクトを期待します。

于 2012-06-24T14:27:30.453 に答える
1

配列を渡したい場合は、次のようにキーを「準備」する必要があります。

{'key[]' : ['value1', 'value2', 'value3']}

フォームで配列を渡し、name-attributeを「key []」に設定する場合と同じように、これを行います。

于 2012-06-24T14:34:58.950 に答える
1

PHP でデータを受信するには、キーと値のペアを送信する必要がありますが、送信しているのは値のみです。

$_POST[key]そのキーの値を返すphpで受け取ります。

JS:

$.post("process.php", {myAray: array}, function(data) {
            $("#output").html(data);
});

php

   $array= $_POST['myArray'];

ajaxをテストするためだけにphpからこの配列をテキストとして返すには、var_dump( $_POST)またはvar_dump($array);

サーバーからの応答で JSON を受信する場合は、 JSON.parse を使用する必要はありません。jQuery は json を内部で解析します。ただし、「json」を dataType 引数として $.post に追加する必要があります

$.post("process.php", {myAray: array}, function(data) {
            /* loop over json here*/
},'json');
于 2012-06-24T14:48:58.813 に答える