1

我正在尝试从 PHP 中放置这个 Assoc 数组并将其发送到 JS 以将其与 google maps api 一起使用。我知道的代码是这样的:

标记.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"}

更新:

我找到了答案。问题是我错误地发送了 assoc 数组。

解决方案是这样做:

$result = $mysqli->query('SELECT...');

$rows = array();
while ($r = $result->fetch_array(MYSQLI_ASSOC)) {
$rows[] = $r;
}
echo json_encode($rows);
4

1 回答 1

1

如果您使用的是 jQuery,只需使用anArray=$.parseJSON(data);
Then 访问anArray[0].secLat

于 2013-06-13T21:47:32.500 回答