0
$(document).ready(function() {
    $.post('matchEngine.php',
        function(data){
        $('#results').html(data);

        alert("data gotten!");
    }, 'json');
});

アラートが表示され、html にダミー テキストを表示することができます。

ページに移動しただけでphpがjson_encode配列をエコーするので、何が間違っているのでしょうか??

4

1 に答える 1

2

コールバックでは、JSON 文字列ではなく、逆シリアルdata化されたオブジェクトになります。したがって、それを に渡すときは、基本的にそれを呼び出して結果を渡します。が配列の場合、デフォルトで を行います。オブジェクトの場合は、が表示されます。htmltoStringdataArray#jointoString[object Object]

要素に何かが表示されているはずですが、ここでの主なポイントは、目的が のデータを操作することである場合、既にデコードされているということです。resultsdata

スクリプトによって返された実際の JSON テキストを確認したい場合は、jQueryに逆シリアル化しないように指示し、HTML エンティティまたは特殊文字が含まれていることを HTML にダンプするときに確認します。次のように、適切に処理されます。

$(document).ready(function() {
    $.post('matchEngine.php',
        function(data){
        $('#results').text(data); // <== `text` instead of `html`
                                  //     makes sure HTML characters
                                  //     like < are shown correctly

        alert("data gotten!");
    }, 'text');                   // <== data type 'text' instead of
                                  //     'json' tells jQuery NOT to decode
                                  //     it for you
});
于 2013-06-06T18:05:54.793 に答える