【问题标题】:Assigning javascript variable using php使用 php 分配 javascript 变量
【发布时间】:2011-11-04 00:07:30
【问题描述】:

我正在尝试使用 google map api 加载地图。我有一个以给定 lcation 为中心的脚本,指定在:var address = "my address";

会话包含一个 txt 文件路径的一部分,其中包含地址。

这有点乱,但它是有目的的:-)

这里是带有 php 的 javascript:

                var geocoder = new google.maps.Geocoder();
                <?php
                    $center_path = "images\blog\\".$_SESSION['trip']."\\Center.txt";
                    echo "var address = \"";
                    include($center_path);
                    echo "\";";
                ?>

                geocoder.geocode( { 'address': address}, function(results, status) {

                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);
                    } 
                }); 

这个输出

var address = "我的地址";

在 html 中意味着它应该可以工作,但它不能。

有人知道为什么变量地址没有被正确传递吗?

【问题讨论】:

  • 请定义“不起作用”。它做什么
  • 你试过用firebug查看地址变量是否存在吗?如果地址字符串的内容在同一行上,请查看生成的源代码,它可能在多行上输出并且 javascript 无法解析它。 Firebug 报告任何 javascript 错误?
  • 您检查过会话是否存在“旅行”吗?另外,回显该路径以查看其外观...

标签: php javascript session include


【解决方案1】:

您正在使用文件的相对路径。确保该文件基于根目录。要对此进行调试,请使用 echo $center_path 并确保回显的路径指向该文件。如果一切都失败,请指定一个绝对路径。

【讨论】:

    【解决方案2】:

    尝试使用 file_get_contents,而不是使用 include 来获取文件。从那里,您应该正确清理文件,并对其运行修剪。在对此进行测试时,我注意到即使是单行文件也包含行尾字符,这可能会导致 javascript 中发生有趣的事情。

    正如其他人所说,您应该为自己做一些尽职调查,并回显所有变量,并确保它们包含您打算为他们提供的信息。

    有一件事是,会话是善变的。您应该确保完全按照应有的方式使用会话变量,确保 $center_path 变量大小写正确,并且一切都按照应有的方式进行。

    除此之外,我不确定我们还能在那里做什么。

    【讨论】:

      【解决方案3】:

      您应该使用file_get_contents 将文件加载到变量中,而不是使用include,后者用于在调用它的上下文中执行代码。

      【讨论】:

        猜你喜欢
        • 2012-10-10
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多