Openlayers通过json数组循环,并以javascript形式输出结果
用json存储数据库连接代码的Connection.php文件:Openlayers通过json数组循环,并以javascript形式输出结果,javascript,jquery,json,openlayers,Javascript,Jquery,Json,Openlayers,用json存储数据库连接代码的Connection.php文件: <?php $username = "root"; $password = ""; $database = "roadmap"; $url = "localhost"; $con = mysql_connect($url, $username , $password); if (!$con) { die('Could not connect:' . mysql_
<?php
$username = "root";
$password = "";
$database = "roadmap";
$url = "localhost";
$con = mysql_connect($url, $username , $password);
if (!$con) {
die('Could not connect:' . mysql_error());
}
mysql_select_db($database, $con) ;
$data = array();
// query your DataBase here looking for a match to $input
$query = mysql_query("SELECT * FROM students");
while ($row = mysql_fetch_assoc($query)) {
$json = array();
$json['Id'] = $row['Id'];
$json['Lon'] = $row['Lon'];
$json['Lat'] = $row['Lat'];
$data[] = $json;
}
header("Content-type: application/json");
echo json_encode($data);
mysql_close($con);
?>
目前,这会将json数据拉入数据库,我必须将其用于数据库中零件的每个单独分配,例如数据[0]。lon将获取数据库中第一条记录的经度条目
因为我将与许多参赛者合作。我想循环遍历json数组,然后按如下方式输出所有记录:
addMarker( RECORD 1 );
addMarker( RECORD 2 );
addMarker( RECORD 3 );
有人能帮我吗。用这样的东西
$.each(data, function(i,row){
addMarker( row['Lon'],row['Lat'] ,row['desc'])
})
您可以使用$.each循环在json上迭代。。试试这个 试试这个
function(data){
$.each(data, function(i){
console.log('Record ' + i + ' : Longitude - ' + data[i].Lon + ' . Latitude - ' + data[i].Lat + '. Description - ' + data[i].desc )
});
}
您可以使用for循环:
$.getJSON("connection.php", function(data) {
for(var i = 0; i < data.length; ++i) {
addMarker(data[i].Lon, data[i].Lat, data[i].desc);
}
addMarker(-0.13264,51.50918 , );
addMarker( -0.12498,51.50807 , );
center = bounds.getCenterLonLat();
map.setCenter(center, map.getZoomForExtent(bounds) - 1);
zoom = map.getZoom();
});
$.getJSON(“connection.php”,函数(数据){
对于(变量i=0;i
或者像其他答案一样,使用jQuery每个
函数
$.getJSON("connection.php", function(data) {
for(var i = 0; i < data.length; ++i) {
addMarker(data[i].Lon, data[i].Lat, data[i].desc);
}
addMarker(-0.13264,51.50918 , );
addMarker( -0.12498,51.50807 , );
center = bounds.getCenterLonLat();
map.setCenter(center, map.getZoomForExtent(bounds) - 1);
zoom = map.getZoom();
});