我在这段代码中有一个while循环:
requests.post
现在,让我解释代码和正在发生的事情。首先我使用JavaScript和PHP因为我需要来自数据库的一些信息,并添加地图(谷歌地图)我需要使用javascript。
在第一轮中,while (i < 5)
{
var pos = new google.maps.LatLng(<?php echo json_encode($lat[$b]); ?>,<?php echo json_encode($lon[$b]);?>);
var marker = new MarkerWithLabel({
position: pos,
draggable: true,
raiseOnDrag: true,
map: map,
icon: 'icon.png',
labelContent: <?php echo json_encode($unidad[$b]); $b=$b+1;?>,
labelAnchor: new google.maps.Point(22, 0),
labelClass: "labels", // the CSS class for the label
labelStyle: {opacity: 0.75},
});
google.maps.event.addListener(marker, "click", function (e) { iw1.open(map, this); });
i++;
}
的值从0传递到1,但是经过第一个循环后,该值再次重置为0。默认情况下,$b
不等于0,因为如果我在while循环之前声明$b
,那么$b=6
的值将始终为6和7.
我做错了什么?或者我该怎么做?任何帮助将不胜感激。请原谅我有任何错误,因为英语不是我的第一语言。
这是我的新代码,我只是将数组从php传递给javascript(我不知道它是如此简单)这里是新代码:
$b
答案 0 :(得分:2)
您正在将 $ lat [$ b] 的值从PHP硬编码为javascript文字。 导致这样的事情:
new google.maps.LatLng("lat of b",
您应该将php变量编码为javascript变量而不是文字:
var lat = <?php echo json_encode($lat); ?>;
var b = <?php echo json_encode($b); ?>;
while(i<5) {
... actual code
从PHP开始,你创建了一个javascript变量而不是文字。
请注意,该页面将进入2个阶段。
您很可能还需要为$ lat创建一个javascript变量。