在一定程度上,我的一切都很好。我有一个表格,用户在表格中填写他们的地址(街道、城市、州、邮政编码的单独字段)。一旦他们点击提交,在提交按钮上,我就有了一系列的 onClick 功能。它将他们的地址字段合并为一个由逗号和空格分隔的隐藏字段(就像您手写地址一样)。这工作正常。然后,一旦合并,下一个函数会对地址进行地理编码,并将纬度和经度也返回到表单上的隐藏字段。这也有效(我认为)这是我这样做的代码。
function codeAddress1() {
var sAddress = document.form.post_consolidatedAddress1.value;
var storedLatLng;
var lon;
var lat;
var splittingPoint;
var stoppingPoint;
geocoder.geocode( { 'address': sAddress}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
document.form.longitude1.value = results[0].geometry.location.lng();
document.form.latitude1.value = results[0].geometry.location.lat();
alert(document.form.latitude1.value);
alert(document.form.longitude1.value);
} else {
alert("Geocode was not successful. Please contact the site webmaster and inform them of the following error: " + status);
}
});
}
至少当它向我显示警报时,其中包含纬度和经度。不过,我的问题出现了:一旦我在隐藏字段中有这些值,我需要将其提交到 MySQL 数据库,以便稍后按距离排序。我已经构建了数据库,以便纬度和经度字段是 FLOAT 类型,长度为 10,6(大到足以包含我通过测试获得的返回值)。但是当我提交到数据库时,我实际上并没有得到值,我只得到 0.000000。我已经尝试了几种方法使从表单中发布的值成为浮点数,这是我目前在我的 PHP 中获取要提交的值的方法:
$latitude1 = floatval($_REQUEST['latitude1']) ;
$longitude1 = floatval($_REQUEST['longitude1']) ;
我也试过:
$latitude1 = (float) $_REQUEST['latitude1'] ;
$longitude1 = (float) $_REQUEST['longitude1'] ;
没有任何工作......有人可以帮忙吗?