使用Google Maps Geocoded Lat Long提交PHP表单的问题

时间:2014-06-11 13:40:39

标签: javascript php jquery forms google-maps

我有一个我的html表单,其中包含以下代码。

<input type="text" style="opacity:0;" id="latlong" name="latlong" value="" />
<input type="submit" name="submit1" onClick="return validate();" value="Submit"/>

Javascript的验证功能如下所示。

<script type="text/javascript">
function validate()
{
    if($("#near_buil_id").val()==''){
        var address = "\""+$("#nearest_building").val()+","+$("#flat").val()+","+$("#near_road").val()+","+$("#landmark").val()+","+$("#street").val()+","+$("#region").val()+","+$("#city").val()+","+$("#state").val()+"\"";
        geocoder.geocode({ 'address': address }, function(results, status) {
          if (status == google.maps.GeocoderStatus.OK) {
            $("#latlong").val("POINT("+results[0].geometry.location.k+" "+results[0].geometry.location.A+")");
            //console.log($("#latlong").val());
            return true;
          }
          else{
            console.log(status);
            console.log(results);
            return false;
          }
          });
    }else{
        return false;
    }
    return true;
}
</script>

我的问题是,当我提交此表单并尝试获取$_POST['latlong']的值时,会获得空值。 另外,当我将return false放在函数末尾并console.log$("#latlong")中的值附加到{{1}}时,我得到了预期值。

任何人都可以帮我解决问题吗? 提前致谢。

1 个答案:

答案 0 :(得分:0)

submit按钮html中,您应该将onclick的代码移至onsubmitonsubmit在提交表单之前运行,而onclick则不是,因此实质上您提交的是#39}。在您的javascript代码在latlong输入中放置值之前,表单在latlong输入中具有空值。

注意onsubmit应该是表单属性。