单张,mysql的制作者没有显示

时间:2013-09-15 09:33:37

标签: php mysql getjson leaflet

我正在尝试使用db mysql显示标记。数据未显示。

http://www.nexusmultimedia.it/gis7.html

    <script>
    var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png',
        cloudmadeAttribution = 'Map data &copy; 2011 OpenStreetMap contributors, Imagery &copy; 2011 CloudMade, Points &copy 2012 LINZ',
        cloudmade = L.tileLayer(cloudmadeUrl, {maxZoom: 17, attribution: cloudmadeAttribution}),
        latlng = L.latLng(45.4404,12.3768);

    var map = L.map('map', {center: latlng, zoom: 11, layers: [cloudmade]});

    var markers = L.markerClusterGroup(); 

    function getUsers() { 
    $.getJSON("get_info.php", function (data) { 

      for (var i = 0; i < data.length; i++) { 

        var location = new L.LatLng(data[i].lat, data[i].lng); 

        // var 
        var name = data[i].nome; 

        var marker = new L.Marker(location); 
        marker.bindPopup("<div style='text-align: center; margin- left: auto; margin-right: auto;'>"+ name +"</div>", 
        {
        maxWidth: '400'
        }); 
        users.addLayer(marker); 
      } 
    })
    };

</script>

来自www.nexusmultimedia.it/get_info.php我可以看到:

[{"cf_id":"1","nome":"Cofano","lat":"45.475281","lng":"12.26436"}]

浏览器镶边没有错误,但没有显示标记。有什么想法吗?

由于

尼古拉

1 个答案:

答案 0 :(得分:0)

似乎有两个问题。首先,似乎服务器的响应无效,因为它没有使用正确的标头(Application / JSON)发回。我看到的响应只是PHP文件的内容:

<?php
$db = new PDO('mysql:host=62.149.150.181;dbname=##your db name omitted##', '##omitted##', '##omitted##');
$sql = "SELECT cf_id, nome, lat, lng FROM form_data_MIT;";

$rs = $db->query($sql);
if (!$rs) {
    echo "SQL error\n";
    exit;
}

$rows = array();
while($r = $rs->fetch(PDO::FETCH_ASSOC)) {
    $rows[] = $r;
}

print json_encode($rows);
$db = NULL;

?>

其次,您没有在控制台中收到任何错误,因为您要将标记添加到不存在的图层 - users。我认为您打算将每个标记添加到图层markers

希望有所帮助!