11

このような配列を作成しました["9", "ques_5", "19", "ques_4"]。JSからPHPに送信したいのですが、適切な結果が得られません。私のJSコードは次のとおりです。

$(".button").click(function(e) {

    e.preventDefault();
    $.ajax({
        type    : 'post', 
        cache   : false,
        url     : 'test/result.php',
        data    : {result : stuff},
        success: function(resp) {
            alert(resp);
        }
    });
});

上記のコードstuffには、レコードを含む配列があります。上記のコードでこの配列を送信するにはどうすればよいですか。PHPでは、この配列をキーのように処理してques_59そのキーの値にします。

4

5 に答える 5

22

データをJSONオブジェクトとして PHP スクリプトに渡すことができます。JSON オブジェクトが次のようなものであるとします。

var stuff ={'key1':'value1','key2':'value2'};

このオブジェクトを php コードに渡すには、次の 2 つの方法があります。

1. オブジェクトを文字列として渡します。

AJAX 呼び出し:

$.ajax({
    type    : 'POST',
    url     : 'result.php',
    data    : {result:JSON.stringify(stuff)},
    success : function(response) {
        alert(response);
    }    
});

result.phpasに渡されたデータを処理できます。

$data    = $_POST["result"];
$data    = json_decode("$data", true);

//just echo an item in the array
echo "key1 : ".$data["key1"];

2. オブジェクトを直接渡します。

AJAX 呼び出し:

$.ajax({
    type    : 'POST',
    url     : 'result.php',
    data    : stuff,
    success : function(response) {
        alert(response);
    }    
});

配列result.phpから直接データを次のように処理します。$_POST

//just echo an item in the array
echo "key1 : ".$_POST["key1"];

ここでは、2 番目の方法を提案します。しかし、両方を試してみてください:-)

于 2013-02-13T05:36:16.297 に答える
2

私が見ているキーと値のペアを送信したい場合は、PHP JSONライブラリ(このような... http://php.net/manual/en/book.json.php )を使用することをお勧めします。 )。

次に、次のようなJSON形式を使用して、実際のキーと値のペアを送信できます... {"ques_5": "19"、 "ques_4": "19"}

于 2013-02-13T04:45:54.333 に答える
2

これを試して

var array = ["9", "ques_5", "19", "ques_4"];
console.log(array.join(","));

上記のコードは、コンマで区切られた文字列を出力し9,ques_5,19,ques_4、それを ajax 呼び出しに貼り付けます。

そして、php explodeその文字列で。

その他の可能な解決策。

初め

var obj = { 'item1': 'value1', 'item2': 'value2' };

$.ajax(
{
    type:  'post', 
    cache:  false ,
    url:  'test/result.php',
    data:  { result : JSON.stringify(obj) },
    success: function(resp)
    {
        alert(resp);
    } 
});

2番

var a = $.JSON.encode(obj);

$.ajax(
{
    type:  'post', 
    cache:  false ,
    url:  'test/result.php',
    data:  { result : a },
    success: function(resp)
    {
        alert(resp);
    } 
});

In PHP File

<?php
    $json = $_POST["data"]
    var_dump(json_decode($json));
?>
于 2013-02-13T04:46:25.667 に答える
1

array in jsonフォーマットをphpに送信してから、json_decode関数を使用して次のような配列を取得できます。

ajax呼び出しでは、jsonを送信する必要があります。そのため、最初に値の配列を作成して、jsonが次のように見えるように正しい形式で取得する必要があります。{"ques_5":"9","ques_4":19}

とajax呼び出しで使用します

 data: JSON.stringify(`your created json`),
 contentType: "application/json; charset=utf-8",
 dataType: "json",

PHPでは次のようになります

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
?>
于 2013-02-13T04:53:51.717 に答える