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

时间:2015-01-22 15:42:30

标签: javascript php

我需要将变量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>

2 个答案:

答案 0 :(得分:1)

尽可能see here,回显json_encoded 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常量。 check the manual for more constants

demo/PoC here

答案 1 :(得分:0)

看看这一行:

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

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

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