我正在尝试为我的gmaps.js地图添加标记。很久了。和拉特。值存储在数据库中,我使用PHP脚本选择。
一旦获得,两者都很长。和拉特。值存储在变量$ data。
下的数组中我想使用json_encode($ data);为了传递变量,但是我不得不将标题更改为json应用程序,我已经在页面上回显了一些PHP,因此这是不可行的。
我现在尝试使用$ .each循环将json_encode回显到jQuery函数中,但是它不成功,因为数据库检索的每个条目都不会有标记。
获得ID的最佳解决方案是什么?和拉特。最多10条记录的值,将其传递给jQuery函数以定位在地图上?
答案 0 :(得分:0)
由于并非所有记录都有标记,因此您必须解析结果,以便只将所需数据传递给您的js函数。我创建一个php数组并添加标记我,lat,long等...在同一个键下:
$markersarray = array ()
foreach($records as $record){
if($record['lat'] != ““){
$markersarray[] = array(
'id'=>$record['id'],
'lat'=>$record['lat'],
'long'=>$record['long']
);
}
}
$markersjson = json_encode($markersarray);
然后你可以使用一个隐藏的输入来存储编码的json字符串,然后将其传递给你的js。
<input id="markersjson" type="hidden" value="<?php echo $markersjson; ?>"/>
在你的js函数中
var markersdata = $('#markersjson').val();
您可能需要将此值解析为对象
var obj = jQuery.parseJSON(markersdata);
然后使用$ .each循环浏览你的obj