需要将变量 php 的值传递给 javascript,但我不能


Need to pass the value of the variable php to javascript but I can not

我需要将变量php的值传递给javascript,但我不能。尝试多种形式,但不起作用。使用以下版本而不是失败的原因。Apache 2.2.25 和 PHP 5.2.17(我现在需要使用这些版本)。示例中应接收变量的值为"kml/Aechmea_magdalenae.kml"

$anio = $row['kml_map']; 
        <script>
            function initialize() {
              var mexico = new google.maps.LatLng(20.6568241,-103.3984801);
              var mapOptions = {
                zoom: 11,
                mapTypeId: google.maps.MapTypeId.TERRAIN,
                center: mexico
              }
              var url2 = <?php echo json_encode($anio) ?>;
              var url1 = 'http://www.cnf.gob.mx:8090/snif/especies_forestales/';
              var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);     
              var ctaLayer = new google.maps.KmlLayer({url: url1+url2});
              ctaLayer.setMap(map);}
            google.maps.event.addDomListener(window, 'load', initialize);
        </script>

正如您在此处看到的,回显json_encoded url 字符串将转义该 url 中的正斜杠。
那么解决方案要么是

var url = '<?php echo $anio; ?>';

确保 $anio 的值不包含任何单引号,或者(如果您运行的是 PHP 5.4 或更高版本),请使用以下命令:

var url = <?php echo json_encode($anio, JSON_UNESCAPED_SLASHES); ?>;

请注意缺少引号(json_encode将为您添加引号),以及使用JSON_UNESCAPED_SLASHES常量。 查看手册以获取更多常量

演示/PoC 在这里

看这一行:

var url2 = <?php echo json_encode($anio) ?>;

如果你打算json_encode(我认为是另一种方式),你应该使用引号,有些像

var url2 = "<?php echo json_encode($anio) ?>";