1

私はこれで何日も立ち往生しています...問題はこれです:jQuery Ajax Jsonを介してPHPファイルから複数の値を取得したいです。しかし、それに追加するとすぐに、それでdataType: 'json',終わりです。指定されたコードを使用しています:


PHP - check.php

$oid=1;
$f=10;
echo json_encode(array("oid" => $oid, "cid" => $f)); 

PS: 上記のコードは、一度に多くの oid と cid を返すループの中にあります!

スクリプトの上または下の部分は、サイトのセキュリティを危険にさらす可能性があるため含めていません.. :P しかし、これはスクリプトが行うことです。

そしてここにjavascriptがあります:


jQuery-scripts.js

$.ajax({
    type: "POST",
    dataType: 'json',
    url: "check.php",
    data: {anu:"bhav"}
}).done(function( result ) {
    if(result!='0'){
        var res=result.oid[0];
        alert(res);
    }
});
4

3 に答える 3

1

以下のコードを前に追加echo json_encode(array("oid" => $oid, "cid" => $f));

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

下の行を変更

var res = result.oid[0];

以下のようにして試してください:

var res = result.oid;
于 2013-08-04T11:55:46.410 に答える
1

あなたが書いた:

PS: 上記のコードは、一度に多くの oid と cid を返すループの中にあります!

この 1 行の情報が、問題の最終的な原因であることはほぼ確実です。

JSON の複数のブロックを次々にエコーしても、有効な JSON の 1 つの大きなブロックにはなりません。

これは、 JSON のように見えるかもしれないが有効ではない文字列になり、JSON パーサーを介して渡すと、データは生成されません。

PHP プログラムは、1 回の呼び出しで生成された JSON ブロックを 1 つだけ出力する必要がありますjson_encode()

これを行うには、データをエコーするのではなく、ループ内の配列にコピーし、データの個々のブロックではなく、その大きな配列に対して json_encode()` 呼び出しを実行します。

物事を説明するのに役立つことを願っています。

于 2013-08-04T14:19:06.607 に答える