1

私は2つのphpファイルを持っています:インデックスとページ。index.phpにajax/jqueryコードを記述します。

$(document).ready( function () {
        var mas;
        $.ajax({
            url: "page.php",
            type: "POST",
            data: "a=aaa&b=bbb",
            success: function (htm) {
                mas = htm;
                alert(htm);         
            }
        });


        $(document).on("click", function () {
            alert(mas['a']);
        });


    });

page.phpには、次のコードしかありません。

 echo json_encode($_POST);

アラートメッセージ{"a": "aaa"、 "b": "bbb"}を取得したため、データは正常に送信されます。ドキュメントをクリックすると、アラート:「未定義」です。どこが間違っているのか教えてください。そのアラート「aaa」が欲しい

4

3 に答える 3

1

AJAX呼び出しからJSONを解析するようにjQueryに指示する必要があります。これを行うには、に追加dataType: 'json'$.ajaxます。

$.ajax({
    url: "page.php",
    type: "POST",
    data: "a=aaa&b=bbb",
    dataType: 'json',
    success: function (htm) {
        mas = htm;
        console.log(htm);         
    }
});
于 2012-08-01T15:34:08.540 に答える
1

このjson_encode()関数は、まさにそれを実行します...データをJSONとしてエンコードします。JSONはjavascriptオブジェクトではなく、javascriptオブジェクトの表記です。オブジェクトとして使用するには、最初にそれを解析する必要があります。

mas = JSON.parse(htm);

次に、次のような値にアクセスできます。

alert(mas.a);
于 2012-08-01T15:31:40.423 に答える
1

追加:

header('Content-type: application/json');

PHPスクリプトの先頭に移動します。

JSONデータはHTML文字列として扱われ、JavaScriptオブジェクトに拡張されません。

于 2012-08-01T15:33:27.337 に答える