我有一个显示良好的谷歌地图(谷歌地图 API v3 - 见下面的代码)。该代码最初被插入到主 index.php 中,如下所示:-
<script type="text/javascript">
code here....
</script>
这可以作为内联代码正常工作,我也可以在 index.php 中使用将我的 PHP 代码中的变量插入到 Google Maps API 中。
随着代码的增长,我想分离出 Google Maps API javascript 并将其弹出到外部文件中以保持整洁。
我的第一个想法是像这样插入文件:
<script type="text/javscript" src="code/googlemaps.php"></script>
现在这可以正常工作,但是一旦我尝试插入任何 PHP 代码,它就不会工作。我不太确定 PHP 服务器如何处理请求,但我想我希望将 js 文件交给 PHP 解析器并解析 PHP 代码,然后将带有解析 php 的 js 传递回浏览器.
该代码由
<body onload="initialize()">
在我的主要 index.php 中(我是 javascript 新手,所以请多多包涵)。
为了完整起见,这里是我使用的 js 代码:
function initialize() {
// Main Google Map view variables
var mapOptions = {
zoom: 6,
center: new google.maps.LatLng(<?php echo $selected_lat . "," . $selected_lon; ?>),
mapTypeId: google.maps.MapTypeId.ROADMAP,
noClear: true,
panControl: true,
panControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.TOP_RIGHT
},
scaleControl: true,
scaleControlOptions: {
position: google.maps.ControlPosition.BOTTOM_RIGHT
},
streetViewControl: false
};
// Display Google Map
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
//Display Select Airport Marker
var marker = new google.maps.Marker({
position: new google.maps.LatLng(<?php echo $selected_lat . "," . $selected_lon; ?>),
map: map,
title:"<?php echo $airport_name[$selected_airport]; ?> Airport Reference Point\na new line\nanother line"
});
// google.maps.Circle variables
var seRangeOptions = {
center: new google.maps.LatLng(<?php echo $selected_lat . "," . $selected_lon; ?>),
fillOpacity: 0.3,
fillColor: "blue",
map: map,
radius: <?php echo seradius; ?>,
strokeColor: "#000000",
strokeOpacity: 0.0,
strokeWeight: 0
};
// display Google Maps circle
serangecircle = new google.maps.Circle(seRangeOptions);
}
好的,问题解决了。这是我所做的,欢迎反馈,我还在学习:) 以下代码放入 JavaScript 文件:
<?php session_start(); ?>
<?php echo 'var lat = "'.json_encode($_SESSION['lat']).'";';?>
这一切的执行顺序仍然有点模糊。我假设 PHP 解析 javascript 文件,插入 PHP 变量,然后将文件返回给浏览器?此外,任何像 Firebug 这样的实用程序都会让我看到它在实践中是如何工作的。
我还在 js 文件的顶部弹出了以下内容,这似乎也整理了源代码在浏览器中的显示方式:
<?php header('Content-type: text/javascript'); ?>