0

他のサイトのチュートリアルでこのコードが使用されている JSON の学習を始めたところです (これを単純化するために既に変更しています)。

$(document).ready(function(){
    $('#getdata-button').click(function(){
        $.ajax({
            type: "GET",
            url: "json-data.php",
            dataType: "json",
            success: function(){
                alert('a');
                $('#showdata').html(
                    "<p>item1="+data.item1+
                    " item2="+data.item2+
                    " item3="+data.item3+"</p>"
                );
            }
        });
    });
});

これは json-data.php のコードです

<?php
    $item1 = "candy";
    $item2 = "chocolate";
    $item3 = "ice cream";

    //return in JSON format
    echo "{";
    echo "item1: ", json_encode($item1), "\n";
    echo "item2: ", json_encode($item2), "\n";
    echo "item3: ", json_encode($item3), "\n";
    echo "}";
?>

問題は、(「getdata-button」の ID で) ボタンをクリックした後、アラート機能 (デバッグ目的) が応答しないことです。Firebug は、リクエストが成功したことを示しており、そこからデータを確認できます。エラーは見つかりませんでした。コールバック関数が実行されていないだけですが、なぜですか?

4

1 に答える 1

2

JSON を正しく出力する必要があります。PHPを以下に置き換えます

$items = array(
    'item1' => $item1,
    'item2' => $item2,
    'item3' => $item3
);
header('Content-type: application/json');
echo json_encode($items);
于 2013-05-03T15:45:54.853 に答える