Google Maps API-将php变量设置为javascript变量
我正在使用谷歌地图API和W3C标准获取用户的地理位置。我已将其设置为基础-使用[谷歌文档][1]中的代码 现在我正在将其集成到我的网站中,并需要将其输入到我的mysql数据库中。我想将PHP变量设置为JavaScript变量(基本上将PHP变量设置为纬度和经度)。但是我没有成功 编辑: 基本上我想制作Google Maps API-将php变量设置为javascript变量,php,geolocation,google-maps-api-3,Php,Geolocation,Google Maps Api 3,我正在使用谷歌地图API和W3C标准获取用户的地理位置。我已将其设置为基础-使用[谷歌文档][1]中的代码 现在我正在将其集成到我的网站中,并需要将其输入到我的mysql数据库中。我想将PHP变量设置为JavaScript变量(基本上将PHP变量设置为纬度和经度)。但是我没有成功 编辑: 基本上我想制作$phpvar=$jsvar。生成一个php变量=我的javascript变量 代码如下: var initialLocation; var siberia = new google.maps.L
$phpvar
=$jsvar
。生成一个php变量=我的javascript变量
代码如下:
var initialLocation;
var siberia = new google.maps.LatLng(60, 105);
var newyork = new google.maps.LatLng(40.69847032728747, -73.9514422416687);
var browserSupportFlag = new Boolean();
function initialize() {
var myOptions = {
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// Try W3C Geolocation (Preferred)
if(navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
map.setCenter(initialLocation);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
// Try Google Gears Geolocation
} else if (google.gears) {
browserSupportFlag = true;
var geo = google.gears.factory.create('beta.geolocation');
geo.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.latitude,position.longitude);
map.setCenter(initialLocation);
}, function() {
handleNoGeoLocation(browserSupportFlag);
});
// Browser doesn't support Geolocation
} else {
browserSupportFlag = false;
handleNoGeolocation(browserSupportFlag);
}
function handleNoGeolocation(errorFlag) {
if (errorFlag == true) {
alert("Geolocation service failed.");
initialLocation = newyork;
} else {
alert("Your browser doesn't support geolocation. We've placed you in Siberia.");
initialLocation = siberia;
}
map.setCenter(initialLocation);
}
}
任何帮助都会很好!请具体告诉我,因为我是这个谷歌地图API的新手
谢谢!:) 可以将PHP变量存储为Javascript变量,如下所示:
<script type="text/javascript">
var geoloc = '<?php echo $geoloc; ?>';
</script>
var geoloc='';
然后可以根据需要使用此变量。如果您能给出一个示例代码,我会尽量让您更准确地了解。希望将PHP变量设置为Javascript变量。这不是很清楚吗
如果您想使用PHP->Javascript,那么很简单:
var myVar = <?php echo json_encode($some_php_var) ?>;
var myVar=;
对于Javascript->PHP,它有点复杂。您必须执行一些DOM黑客操作,将值插入表单值/提交表单,或者执行一些AJAX工作。这就是我当前为Lat和Lng设置php变量的方式,然后使用Javascript调用它们:
function initMap() {
var geoLat = parseFloat("<?php echo h($location['lat']); ?>");
var geoLng = parseFloat("<?php echo h($location['lng']); ?>");
var theLocation = {lat: geoLat, lng: geoLng};
var map = new google.maps.Map(
document.getElementById('map'), {
zoom: 16,
center: theLocation
});
函数initMap(){
var geoLat=parseFloat(“”);
var geoling=parseFloat(“”);
变量位置={lat:geoLat,lng:geoling};
var map=new google.maps.map(
document.getElementById('map'){
缩放:16,
中心:位置
});
我正在使用parseFloat()函数
这有助于解决某些人可能遇到的VS代码中的Lat/Lng对象文字错误消息和标记/lint错误。我希望这对你和其他人有所帮助。这很容易被注入-如果$geoloc包含一个引号呢?现在你已经打破了这个javascript块。就像mysql\u real\u escape\u string()对于SQL工作,需要通过json_encode()运行在插入javascript之前。嘿,Marc..这是一个示例语句..由于他使用的是纬度和经度,他实际上不需要在这里使用json_编码来增加自己的复杂性。此外,一般来说,示例行需要根据需要进行更改。如果你能提供一些你正在使用的代码,它将是借助代码更容易解释。基本语法如我在回答中所说。斯多克,请查看我的编辑以及我正在使用的代码。似乎您更希望将Javascript变量存储到SQL数据库中。如果是这样,您将需要使用AJAX(这比DOM hacking更容易,IMHO)