3

jsonを使用してphpファイルからjavascriptファイルのデータを取得しようとしています。

$items = array(); 
while($r = mysql_fetch_array($result)) { 
    $rows = array( 
        "id_locale" => $r['id_locale'], 
        "latitudine" => $r['lat'], 
        "longitudine" => $r['lng'] 
    ); 
    array_push($items, array("item" => $rows)); 
} 
ECHO json_encode($items);

そしてJavaScriptファイルで、ajax呼び出しを使用してデータを回復しようとします:

$.ajax({
    type:"POST",
    url:"Locali.php",
    success:function(data){
        alert("1");
        //var obj = jQuery.parseJSON(idata);
        var json = JSON.parse(data);
        alert("2");
        for (var i=0; i<json.length; i++) {
            point = new google.maps.LatLng(json[i].item.latitudine,json[i].item.longitudine);
            alert(point);
        }
    }
})

最初のアラートは出力されますが、後者は出力されません。エラーが発生します: Unexpected token <.... but I don't know what it is.

どこが間違っているのか誰にも分かりますか?

また、jquery を使用してデータを回復しようとしましたが、肯定的な結果は得られませんでした。

4

5 に答える 5

0

これでうまくいくはずです。

$.post("Locali.php",{
    // any parameters you want to pass
},function(d){
    alert("1");
    for (var i=0; i<d.length; i++) {
      point = new google.maps.LatLng(d[i].item.latitudine,d[i].item.longitudine);
      alert(point);
    }
}, 'json');

上記の応答を返す場合、PHPは問題ありません。

于 2012-11-27T10:26:27.087 に答える
0

data $ .ajax({type: "POST"、dataType:json、url: "Locali.php"、success:function(data){for(i in data){point = new google.maps.LatLng(json [i ] .item.latitudine、json [i] .item.longitudine); alert(point);
}}})

そのようにしてみてください。

于 2012-11-27T10:26:41.640 に答える
0

このわずかな変更で大丈夫なはずです:

$items = array(); 
while($r = mysql_fetch_array($result)) { 
    $items[] = array( 
        "id_locale" => $r['id_locale'], 
        "latitudine" => $r['lat'], 
        "longitudine" => $r['lng'] 
    ); 
} 
echo json_encode($items);

そしてjQuery:

$.ajax({
    type:"POST",
    dataType: 'json',
    url:"Locali.php",
    success:function(data){
        console.log(data);
        for (var i=0; i<data.length; i++) {
            point = new google.maps.LatLng(data[i].item.latitudine,data[i].item.longitudine);
            alert(point);
        }
    }
})
于 2012-11-27T10:27:26.280 に答える
0

PHPファイルから取得しているデータをもっと探すべきだと思います。間違いなくこれは解析エラーであり、いくつかの括弧/何かが欠落している必要があり、最終的に返されたデータが json 解析可能な文字列にならない.

于 2012-11-27T10:36:17.997 に答える
-1

ええ、試してみてください

for (var i=0; i<json[0].length; i++) {

そこにオブジェクトがあるからです。

于 2012-11-27T10:27:55.793 に答える