ある時点まではすべてが順調に進んでいます。ユーザーがフォームに住所を入力するフォームがあります(通り、都市、州、郵便番号のフィールドが分かれています)。送信ボタンを押すと、一連の onClick 関数があります。住所フィールドをカンマとスペースで区切られた 1 つの非表示フィールドに統合します (住所を手書きする場合と同様)。これはうまくいきます。それが統合されると、次の関数は住所をジオコーディングし、緯度と経度をフォームの非表示フィールドにも返します。これもうまくいきます(私が思うに)ここに私がそれを行うコードがあります。
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 データベースに送信する必要があります。緯度と経度のフィールドが長さ 10.6 の FLOAT 型になるようにデータベースを構成しました (テストで取得した戻り値を含めるのに十分な大きさです)。しかし、データベースに送信すると、実際に値を取得することはなく、0.000000 しか取得できません。フォームから投稿された値をフロートにするいくつかの方法を試しました。これは現在、送信する値を取得するPHPにあるものです。
$latitude1 = floatval($_REQUEST['latitude1']) ;
$longitude1 = floatval($_REQUEST['longitude1']) ;
私も試しました:
$latitude1 = (float) $_REQUEST['latitude1'] ;
$longitude1 = (float) $_REQUEST['longitude1'] ;
何も機能しません... 誰か助けてくれませんか?