我是php的新手。我有一个简单的网站循环通过一个mysql数据库,并为每一行绘制多边形。它还为用户在单击多边形时可以看到的每个多边形分配自定义属性(名称)。
当用户点击多边形时,他应该看到变量“bname”的值
当我将bname分配给坐标时,代码可以正常工作:
var bname = ('.$row[coord1].');
当我将bname分配给另一个字符串列时,代码失败:
var bname = ('.$row[name].');
数据库中的所有数据都是文本格式,我怀疑可能是我使用错误的语法从数据库返回字符串值?我需要将bname分配给数据库中的name列。
这是完整的代码:
$findmap= 'SELECT * FROM build2';
if(!$result = $con->query($findmap)){
die('There was an error running the query
[' . $con->error . ']');
} else {
while ($row = $result->fetch_assoc()) {
echo '
var polypath = [new google.maps.LatLng('.$row[coord1].'),
new google.maps.LatLng('.$row[coord2].'),
new google.maps.LatLng('.$row[coord3].'),
new google.maps.LatLng('.$row[coord4].'),
new google.maps.LatLng('.$row[coord5].'),
new google.maps.LatLng('.$row[coord6].'),
new google.maps.LatLng('.$row[coord1].')
];
var bname = ('.$row[name].');
var dxbmap = new google.maps.Polygon({
custom: bname,
path:polypath,
strokeColor:"#0000FF",
strokeOpacity:0.8,
strokeWeight:1,
fillColor:"#0000FF",
fillOpacity:0.1
});
dxbmap.setMap(map);
google.maps.event.addListener(dxbmap, "click", function() {
alert(this.custom);
});
';
}
}
?>
答案 0 :(得分:1)
您需要在浏览器中检查您的控制台是否存在JS错误,我认为这是您遇到的问题。试试这个
$findmap= 'SELECT * FROM build2';
if(!$result = $con->query($findmap)){
die('There was an error running the query
[' . $con->error . ']');
} else {
while ($row = $result->fetch_assoc()) {
echo '
var polypath = [new google.maps.LatLng('.$row[coord1].'),
new google.maps.LatLng('.$row[coord2].'),
new google.maps.LatLng('.$row[coord3].'),
new google.maps.LatLng('.$row[coord4].'),
new google.maps.LatLng('.$row[coord5].'),
new google.maps.LatLng('.$row[coord6].'),
new google.maps.LatLng('.$row[coord1].')
];
var bname = \''.$row[name].'\';
var dxbmap = new google.maps.Polygon({
custom: bname,
path:polypath,
strokeColor:"#0000FF",
strokeOpacity:0.8,
strokeWeight:1,
fillColor:"#0000FF",
fillOpacity:0.1
});
dxbmap.setMap(map);
google.maps.event.addListener(dxbmap, "click", function() {
alert(this.custom);
});
';
}
}
?>
使用您当前的代码作为控制台日志我认为会显示类似
的内容未捕获的ReferenceError:
括号中没有封装字符串,那是你试图用它们做的吗?