表格中的JQUERY地理编码&将latlng以及其他内容传输到PHP

时间:2015-01-21 14:02:10

标签: jquery forms google-maps-api-3

HI there&谢谢你读完我... 我已经把& A& A&用JQUERY&来自GoogleMpasV3的gocoding,但似乎并没有全部放在一起。这就是我要做的事情: 我有一个简单的形式,它将传递一些额外的数据与lat& lng发现使用Googlemaps V3地理编码器 - 。要进行地理编码的地址将由用户在表单内进行输入,地理编码,以及隐藏的lat& lng输入填充了相关值......

我得到了隐藏输入在表单中填充的部分但是当我添加一些其他数据时尝试使用按钮或“提交”类型输入提交表单,我卡住了:

这是我的基本表单布局:

<form methot="post action="some.php">
<input type="hidden" id="param1" name="param1" value="value1">
<input type="text" id="adress" name="address">
<input type="button" id="geocodeBtn" name="geocodeBtn" Value="GeoCode!">
<input type="button" id="submitBtn" name="submitBtn" value="Done!">
</form>

我知道我可以在'geocode Btn'上以javascript方式使用onclick事件,或使用JQUERY('#geocodeBtn')。on。('click',function(...)但无论如何我无法进行地理编码工作并在提交后提交数据......

有人会友好地为我铺平道路。我意识到这很容易JQUERY / JS的东西,但我感到很困惑&amp;我无处可.. 非常感谢, JM

1 个答案:

答案 0 :(得分:0)

Kinda更有意义地以不同的方式实现 - 只需按一下“提交”按钮,删除地理编码按钮。 当有人提交时,将所有数据发布到PHP,你可以使用curl函数从该PHP文件进行地理编码。

这更好,因为它可以防止人们改变他们的lat&amp; amp;地理编码后的lng值。

示例卷曲得到lat&amp;来自谷歌:

function getLocGoogle($addr){
$loc=array();
$addr=urlencode($addr);
$url = "http://maps.google.com/maps/api/geocode/json?address=$addr&sensor=false";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);

$response = json_decode($response);
if($response->status=='OK'){
    $loc['lat'] = $response->results[0]->geometry->location->lat;
    $loc['lon'] = $response->results[0]->geometry->location->lng;

    return $loc;
}
return false;

}