- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个显示良好的 Google map (Google Maps 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'); ?>
最佳答案
问题可能出在这一行:
title:"<?php echo $airport_name[$selected_airport]; ?> Airport Reference Point\na new line\nanother line"
JavaScript 不接受换行符来直接继续字符串,必须使用 \n
,如果title:"<?php echo $airport_name[$selected_airport]; ?> Airport Reference Point\na new line\nanother line"
返回一个多行字符串,那么它将破坏 JavaScript 代码。
尝试使用str_replace()函数将所有新行替换为 \n
,还有addslashes()所以"
也不会破坏 JavaScript 字符串
title:"<?php echo str_replace("\n", '\n', str_replace("\r",'', addslashes($airport_name[$selected_airport]))); ?> Airport Reference Point\na new line\nanother line"
关于php - 谷歌地图API和PHP集成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13748067/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!