2014-09-11 62 views
0

我需要从地址获取经纬度,使用谷歌地图,并用php操纵它。从Javascript/Geocoder.geocode()获取经度和纬度并使用它与PHP

我用这样一个https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple代码,具有该部分:

function codeAddress() { 
    var address = document.getElementById('address').value; 
    geocoder.geocode({ 'address': address}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
     var latitude = results[0].geometry.location.lat(); 
     var longitude = results[0].geometry.location.lng(); 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location 
     }); 
    } else { 
     alert('Geocode was not successful for the following reason: ' + status); 
    } 
    }); 
} 

,我已经添加了变数纬度和经度(按照this question中的说明现在,我需要使用变量我已经在Java脚本中的PHP脚本创建的。

我新手到JavaScript,因此,我很抱歉,如果这是一个简单的问题。

+0

如果你只是想打印出坐标到您的网页,(<?PHP的echo()>为您的''例子说明)你可以使用JavaScript来做到这一点,不需要使用PHP。你能澄清一下你需要将这些协议传递给PHP吗? – duncan 2014-09-11 08:28:13

+0

我不是简单地打印出坐标,这是保持简单问题的一个例子。我需要发送坐标到setcookie()和一个外部程序来处理它并给出一个输出。这很容易,我没有任何问题可以用PHP来完成,为什么我想要传递变量。 – 2014-09-11 13:32:09

+0

@duncan我编辑了这个问题,希望现在好一点。 – 2014-09-11 15:52:03

回答

2

一个简单的方法是使用基于3210的ajax。不要忘记下载/包含图书馆。

$.ajax({ 
    type:"POST", 
    url:"yourscript.php", 
    data: {type:getlatlong,latitude:latitude,longitude:longitude}, 
    success: function(){ 
     alert('sent'); 
    } 
}); 

在你的PHP,您可以访问的信息:

if ($_SERVER["REQUEST_METHOD"]=="POST") { 
    if ($_POST["type"]=="getlatlong") { 
     $latitude = $_POST["latitude"]; 
     $longitude = $_POST["longitude"]; 
     ... 
    } 
+0

Thankyou Vizvi,我正在努力使这项工作。我的websit是一个WordPress的,并且总是有post方法的问题,但我想你的解决方案将会很完美。谢谢! – 2014-09-11 12:10:16

+0

通过tye的方式,有没有办法在$ .ajax()中使用当前的url? – 2014-09-11 12:18:54

+0

当前网址,即路径中的PHP文件的含义?你可以使用'dirname(__ FILE __)',但这将只适用于普通的PHP脚本,而不适用于javascript文件。你也可以使用'get_bloginfo('wpurl')'WP函数来获取wordpress基目录,并修改它以包含你的PHP脚本。我不是很喜欢wordpress,对不起:) – 2014-09-11 18:56:36

0

我认为你需要在PHP的script.php JavaScript变量是用于访问您可以使用GET或POST方法数据服务器端语言。你可以简单地得到这种方式,首先分配的JavaScript变量来隐藏文本字段,并使用GET或POST method.You可以将JavaScript变量这样

<form action="yourphp.php" method="post"> <input type="hidden" value="latitude" name="latitude"> <input type="hidden" value="longitude " name="longitude"> </form>

在PHP访问

在你的PHP文件访问数据:

$latitude=$_POST['latitude'] $longitude=$_POST['longitude']

+0

谢谢user2804362。我应该如何连接这个javascript中创建的变量latitude和longitde? – 2014-09-11 12:11:53