如何根据数据库表信息显示传单标记



我想显示与同一项目相关的图像一样多的传单标记。目前,我正在从MYSQL中获取图像数量和坐标,将其保存在php变量中,并在JS变量中使用其值。

// Contains Latitude for image 1
//$coord_pictures[0][0];
// Contains Longitude for image 1
//$coord_pictures[0][1];
// Contains Latitude for image 2
//$coord_pictures[1][0];
// Contains Longitude for image 2
//$coord_pictures[1][1];
// Marker name
var dynamicname = 'marker';
// Marker Latitude
var picture_lat = '<?php echo $coord_pictures[0][0];?>';
// Marker Longitude
var picture_long = '<?php echo $coord_pictures[0][1];?>';
// Number of pictures on table
var num_pictures = '<?php echo $num_pictures[0];?>';
// Function to create marker depending on the number of pictures
function Addmarker(markerArray) {
for (var i = 0; i < markerArray; i++) {
console.log(dynamicname + i);
console.log(picture_lat);
console.log(picture_long);
this[dynamicname + i] = L.marker(
[picture_lat, picture_long], {icon: redIcon}).addTo(map);
}
}
Addmarker(num_pictures);

输出:

marker0
27.78233
-97.5608
marker01
28.78233
-96.5608
marker012
31.78233
-93.5608

我需要帮助使用循环中的"I"值来访问不同的坐标,并在标记名称上使用它来动态创建它们。

奥利弗是对的,我的设计不正确。

以下是我更改设计的方式:PHP数组被编码为JSON表示,并被分配给JS数组。

//Assign php generated json to JavaScript variable
var tempArray = <?php echo json_encode($coord_pictures); ?>;
// Function to create marker depending on the number of pictures
function Addmarker(markerArray) {
for (var i = 0; i < markerArray; i++) {
this[dynamicname + i] = L.marker(
[tempArray[i][0], tempArray[i][1]], {icon: redIcon}).addTo(map);
}
}

最新更新