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 <.... 但我不明白它是什么。

有人知道我在哪里错了吗?

我也尝试用 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

数据 $.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); 警报(点);
} } })

试试这样。

于 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 回答