问题与PHP表单提交与谷歌地图地理编码Lat长

Issues with PHP form submit with Google Maps Geocoded Lat Long

本文关键字:编码 Lat 谷歌地图 PHP 表单提交 问题      更新时间:2023-09-26

我有一个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")中的值,我得到了期望值。

谁能帮我解决这个问题?提前感谢。

在您的submit按钮html中,您应该将onclick的代码移动到onsubmitonsubmit在表单提交之前运行,而onclick不是,所以本质上你是在"提交"表单,在latlong输入中有一个空值,在你的javascript代码在latlong输入中放一个值之前。

onsubmit应该是一个表单属性