javascript中的变量同时保持重置

时间:2015-08-30 17:40:04

标签: javascript php while-loop counter

我在这段代码中有一个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

1 个答案:

答案 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个阶段。

  1. 服务器端呈现,其中评估PHP代码。
  2. 评估javascript的客户端代码。
  3. 您很可能还需要为$ lat创建一个javascript变量。