使用php分配javascript变量

时间:2011-11-04 00:07:30

标签: php javascript session include

我正在尝试使用Google地图API加载地图。我有一个脚本,它将它集中在一个给定的lcation上,在:var address =“my address”;

中指定

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

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

这是javascript with php:

                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中意味着它应该有效,只有它没有。

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

3 个答案:

答案 0 :(得分:0)

您正在使用该文件的相对路径。确保该文件基于root。要调试它,请使用echo $ center_path并确保echo out的路径指向该文件。如果所有其他方法都失败,请指定绝对路径。

答案 1 :(得分:0)

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

正如其他人所说,你应该为自己做一些适当的延迟,并回应所有的变量,并确保它们包含你想要的信息。

有一点是,会话是变化无常的生物。你应该确保你的会话变量完全按照它应该使用,$ center_path变量是正确的,并且所有内容都应该是正确的。

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

答案 2 :(得分:0)

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