0

我正在尝试从具有这种结构的 jquery ui 映射中创建一个 JSON 数组

{"markers":[{"latitude":57.7973333, "longitude":12.0502107}, {"latitude":57.6969943, "longitude":11.9865}]}

现在,我不知道该怎么做。

基本上,我试图从数据库中获取位置,但我的尝试是使结构错误。

我得到的结构是

{"markers":{"latitude":"42.33819791906357","longitude":"-71.04998970619276"}}{"markers":{"latitude":"42.33843636702964","longitude":"-71.0503180325693"}}{"markers":{"latitude":"42.33898102309772","longitude":"-71.0509396345085"}}

我的 PHP 是

$result = mysql_query("SELECT lat, lon, it, name FROM login");

while($row = mysql_fetch_array($result))
{
    $lat = $row['lat'];
    $lon = $row['lon'];
    $name = $row['name'];
    $it = $row['it'];

    $data["markers"]["latitude"] = $lat;
    $data["markers"]["longitude"] = $lon;
    $data["markers"]["name"] = $name;
    $data["markers"]["it"] = $it;

    echo json_encode($data);
}
?>

请帮忙

谢谢,

猎人

4

1 回答 1

3

以下代码将首先将其保存到一个临时数组中,然后再对其进行 json_encode。

您的问题是您每次获取一些数据时都尝试对其进行 json_encode 编码。

$data["markers"] = array();
while ($row = mysql_fetch_array($result))
{
    $lat = $row['lat'];
    $lon = $row['lon'];
    $name = $row['name'];
    $it = $row['it'];

    $data["markers"][] = array(
        "latitude" => $lat,
        "longitude"] = $lon,
        "name" => $name,
        "it" => $it
    );  
}

echo json_encode($data);
于 2013-05-26T19:23:28.283 回答