2011-11-04 66 views
0

我试图使用谷歌地图API加载地图。我有一个脚本,它在一个给定的位置上进行集中,详见:var address =“my address”;使用php分配JavaScript变量

会话保存一个路径的一部分到一个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地址= “我的地址”;

在html这将意味着它应该工作,只有它不。

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

+0

请定义“不起作用”。它有什么作用? – deceze

+0

您是否检查过会话以查看“旅行”是否存在?此外,回声出路,看看它看起来像什么... –

+0

你试过用萤火虫,看看地址变量是否存在?看看生成的源如果地址字符串的内容是在同一行上,也许它输出在许多行上,JavaScript无法解析它。 Firebug报告任何javascript错误? – wezzy

回答

0

您正在使用文件的相对路径。确保该文件基于根目录。为了调试,使用echo $ center_path并确保路径回显出来指向文件。如果一切都失败,则指定绝对路径。

0

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

正如其他人所说的,你应该为自己做一些适当的弥补,并回应所有的变量,并确保它们包含你打算给他们的信息。

有一件事是,会议是善变的生物。您应该确保您的会话变量的使用与其应该完全相同,$ center_path变量是正确的,并且所有内容都按照原样排列。

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

0

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