Google Maps API-将php变量设置为javascript变量

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

我正在使用谷歌地图API和W3C标准获取用户的地理位置。我已将其设置为基础-使用[谷歌文档][1]中的代码

现在我正在将其集成到我的网站中,并需要将其输入到我的mysql数据库中。我想将PHP变量设置为JavaScript变量(基本上将PHP变量设置为纬度和经度)。但是我没有成功

编辑:

基本上我想制作
$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)