Php 变量声明错误 - MySQL

Php Variable declaration error - MySQL

我对 php 很陌生。我有一个简单的网站,它循环遍历 mysql 数据库并为每一行绘制多边形。它还为用户在单击多边形时可以看到的每个多边形分配一个自定义属性(名称)。

当用户点击多边形时,他应该看到变量 "bname"

的值

当我将 bname 分配给坐标时,代码运行完美:

var bname = ('.$row[coord1].');

当我将 bname 分配给另一个字符串列时代码失败:

var bname = ('.$row[name].');

数据库中的所有数据都是文本格式,我怀疑我可能使用了错误的语法来 return 来自数据库的字符串值?我需要将 bname 分配给数据库中的名称列..

这是完整代码:

$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);

    });

';
}
}
?>

您需要检查浏览器中的控制台是否存在 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);

    });

';
}
}
?>

根据你当前的代码,我认为你的控制台日志会显示类似

的内容

Uncaught ReferenceError:

圆括号没有封装字符串,这是您要用它们做的吗?