0

目標

jQuery[{"ID": 1, "Name": "XBOX"}, {"ID": 2, "Name": "Playstation 3"}]を使用して送信します。$.ajax()

問題

私はこれを持っています:

[...]

var object = $.parseJSON(data);

$.ajax({
    type: "POST",
    url: "laboratory.php",
    data: object,
    success: function(response) {
        console.log(response);
    }
});

そして、でlaboratory.php

<?php print_r($_REQUEST); ?>

最後に、コンソール経由のリターンは次のとおりです。

Array
(
    [undefined] => 
)

変数dataの意味は次のとおりです。

[{"ID": 1, "Name": "XBOX"}, {"ID": 2, "Name": "Playstation 3"}]

そして、これがobject意味することです(Chromeのコンソールによる):

[Object, Object]

誰かが私にアイデアを与えることができますか?

4

3 に答える 3

3

JSON.stringify を使用してみましたか:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

$.ajax({
    type: "POST",
    contentType: 'application/json',
    url: "laboratory.php",
    data: JSON.stringify(object), // using stringify
    success: function(response) {
       console.log(response);
    }
});
于 2013-10-10T19:43:58.527 に答える
1

これが問題です。オブジェクトの配列を渡すと$.param()(これは jQuery が内部的に行うことであり、文字列ではありません) 、php から返されるものとまったく同じdata:結果になります。"undefined=undefined&undefined=undefined"あなたの配列は、単にjQueryが理解できない形式になっています。実際に送信したいのは json で$.parseJSONあるため、使用しないでください。json が配列に変換され、本当に必要なのは単なる文字列になるためです。

//var object = $.parseJSON(data);

$.ajax({
    type: "POST",
    url: "laboratory.php",
    data: data,
    success: function(response) {
        console.log(response);
    }
});
于 2013-10-10T19:41:51.267 に答える
0

複数のデータの場合、私の意見では getJSON の方が優れています。

$.getJSON('laboratory.php', function(json) {
            $.each(json, function(key, val) {
            //Getting the value of id
            val["ID"];
            //Getting the value of name
            val["NAME"];
             //DO whatever u want.
            });
});
于 2013-10-10T19:38:21.010 に答える