JSON从php解析javascript中的数据

时间:2012-11-27 10:15:42

标签: javascript php json parsing

我正在尝试使用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);
        }
    }
})

打印第一个警报,后者没有,它给了我错误:意外的令牌&lt; ....但我不明白它是什么。

任何人都知道我哪里错了?

我还尝试使用jquery恢复数据但没有正面结果。

5 个答案:

答案 0 :(得分: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提供您上面提到的回复,那么PHP就没问题了。

答案 1 :(得分:0)

data $ .ajax({         键入: “POST”,         dataType:json,         网址:“Locali.php”         成功:功能(数据){             for(i in data){             point = new google.maps.LatLng(json [i] .item.latitudine,json [i] .item.longitudine);             警报(点);
            }         }     })

尝试那样。

答案 2 :(得分: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);
        }
    }
})

答案 3 :(得分:0)

我认为你应该从php文件中获取更多数据。肯定这是一个解析错误,必须缺少一些括号/其他东西,最终不会使数据返回为json可解析字符串。

答案 4 :(得分:-1)

是的,试试

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

因为那里有一个物体..