0

PHP でオブジェクトを送信する際に問題があります。PHP ファイルに送信する前に、オブジェクトを文字列化します。

次に、PHP ファイルは json_decode を使用します。しかし、デコードには空の変数が表示されます。

console.log のオブジェクトは、これをその構造として示しています。

ここに画像の説明を入力

次に、これでPHPに送信されます:

    console.log(my_Obj);
    var as = JSON.stringify(my_Obj);        
    call_data('add.php?&as='+as, nxtFunc);  

PHPファイルには、状況を処理する次のものがあります。

    $path = json_decode($_GET['as']);
    echo $_GET['as'].'<br/>';
    print_r($path);
    die;

結果は次のとおりです。

[null,null,{\"8\":[null,null,null,null,null,null,[],[],[],[],[]],\"9\":
[null,null,null,null,null,null,null,null,null,null,[]],\"10\":
[null,null,null,null,null,null,null,null,null,null,[],[]],\"11\":
[null,null,null,null,null,null,null,null,null,null,null,[]]}]   
<br/>

Chrome の XHR リクエスト URL は次のように表示されます。

add.php?as=[null,null,{%228%22:[null,null,null,null,null,null,[],[],[],[],[]],%229%22:[null,null,null,null,null,null,null,null,null,null,[]],%2210%22:[null,null,null,null,null,null,null,null,null,null,[],[]],%2211%22:[null,null,null,null,null,null,null,null,null,null,null,[]]}]

print_r には何も表示されないことに注意してください。stringify を使用すべきではありませんか?

4

1 に答える 1

1

これmy_Objは、オブジェクトではなく配列であるためです。

これを試して:

var as = JSON.stringify({data: my_Obj});

ノート:

また、文字列化する前に配列をクリーンアップする必要があります。つまり、null/未定義のインデックスをすべてクリアします。この回答を確認してください: https://stackoverflow.com/a/281335/921204

于 2012-12-30T03:04:32.020 に答える