我正在尝试从PHP中放入这个Assoc数组并将其发送给JS以将其与google maps api一起使用。我所知道的代码是:
Marker.php
<?php
$config = parse_ini_file('config.ini');
$sql = "SELECT `secName` , `secLat` , `secLng` FROM `guia_sectors`";
if (!$mysqli = new mysqli ($config['HOST'], $config['USER'], $config['PASSWORD'], $config['DB']))
{
echo "MySQLI Error: " . $mysqli->error;
}
$result = $mysqli->query($sql);
for ($i = 0; $i < $result->num_rows; $i++) {
echo json_encode($result->fetch_array(MYSQLI_ASSOC));
}
?>
JS
function getMarker () {
$.get ('includes/marker.php', function (data) {
alert(data);
});
}
这是我从Marker.php获得的数组,我需要使用Lat和Lng:
{"secName":"aosindaiosdn","secLat":"-54.74584205236408","secLng":"-68.19616198539734"}{"secName":"JAsud","secLat":"-54.74584205236408","secLng":"-68.19616198539734"}
更新
我找到了答案。问题是我发送了关联数组错误。
解决方案是这样做:
$result = $mysqli->query('SELECT...');
$rows = array();
while ($r = $result->fetch_array(MYSQLI_ASSOC)) {
$rows[] = $r;
}
echo json_encode($rows);
答案 0 :(得分:1)
如果您使用的是jQuery,请使用anArray=$.parseJSON(data);
然后访问anArray[0].secLat