web-dev-qa-db-ja.com

Ajax-成功関数で返された配列を使用する方法

こんにちは、配列を返すphpコードがあります。私はajaxの成功関数でこの配列を使用できるようにしたいのですが、これをどのように行うのかわかりません。私は以下を試しましたが、運はありません。

pHPコード:

$arr = array();
$arr[0] = "Mark Reed"
$arr[1] = "34";
$arr[2] = "Australia";

exit($arr);

jsコード:

$.ajax({
    type: "POST",
    url: "/returndetails.php",
    data: 'id=' + userid,
    success: function (data) {
        document.getElementById("name").innerHTML = data[0];
        document.getElementById("age").innerHTML = data[1];
        document.getElementById("location").innerHTML = data[2];
    }
});
15
Matt9Atkins

サーバーからJSONとしてデータを返す必要があります。

[〜#〜] php [〜#〜]

$arr = array();
$arr[0] = "Mark Reed";
$arr[1] = "34";
$arr[2] = "Australia";

echo json_encode($arr);
exit();

[〜#〜] js [〜#〜]

$.ajax({
    type: "POST",
    url: "/returndetails.php",
    data: 'id=' + userid,
    dataType: "json", // Set the data type so jQuery can parse it for you
    success: function (data) {
        document.getElementById("name").innerHTML = data[0];
        document.getElementById("age").innerHTML = data[1];
        document.getElementById("location").innerHTML = data[2];
    }
});
46
Hugo Tunius

小さな間違い:

しない:exit($arr);

置換:echo json_encode($arr);

9
robby

問題があります。例えば_data[0]_と_data[1]_を表示したい場合、文字列の文字のように見えます。 header("Content-Type: application/json");を適用する前にecho json_encode($arr)を追加することを解決します

ここに解決策があります

$arr = array();
$arr[0] = "Mark Reed"
$arr[1] = "34";
$arr[2] = "Australia";

header("Content-Type: application/json");

echo json_encode($arr);

exit();

の代わりに

$arr = array();
$arr[0] = "Mark Reed"
$arr[1] = "34";
$arr[2] = "Australia";

exit($arr);
0
Waqas Qayum