对于每个循环,JavaScript和PHP在Leaflet中生成标记

2skhul33  于 2023-02-03  发布在  PHP
关注(0)|答案(1)|浏览(140)

我正在尝试用PHP和JavaScript循环我的SQL结果,以在一个小册子Map上设置标记。数据包含名称,纬度,经度和数字。
下面是我的代码:

var ticker = <?php echo mysqli_num_rows($result); ?>;
for ( let i = 0; i < ticker; i++) {
  var latitude = <?php echo json_encode($row["latitude"]); ?>;
  var longitude = <?php echo json_encode($row["longitude"]); ?>;
  var marker = L.marker([latitude, longitude]).addTo(map);
  var popup = <?php echo json_encode($row["name"] . " " . $row["number"]); ?>;
  marker.bindPopup(popup);
}

它应该添加两个标记,但不知何故,它只使用第一个条目的数据生成了一个标记。

5uzkadbs

5uzkadbs1#

好的,我找到了解决办法。谢谢你的帮助!
PHP语言

$result = $conn->query($sql);
$values = [];
while($value = mysqli_fetch_array($result, MYSQLI_NUM)) {
    $values[] = $value;
}

JavaScript语言

var data = <?php echo json_encode($values); ?>;

for ( let i = 0; i < data.length; i++) {
    var name = data[i][0];
    var lat = data[i][1];
    var lon = data[i][2];
    var ums = data[i][3];
    var popup = name + ums;
    var marker = L.marker([lat, lon]).addTo(map);
    marker.bindPopup(popup);
}

相关问题