フォームに次のような送信ボタンがあります。
<input type="submit" name="add_submit" onclick="return getCoord()" value="Add Location" />
次のような 2 つの非表示の入力フィールド:
<input id="long" name="long" type="hidden" value="" />
<input id="lat" name="lat" type="hidden" value="" />
スクリプトは次のようになります。
<script type="text/javascript">
function getCoord() {
address = document.getElementById('street').value + " " + document.getElementById('city').value + " " + document.getElementById('state').value + " " + document.getElementById('zip').value;
console.log(address);
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
document.getElementById('lat').value = latitude;
document.getElementById('long').value = longitude;
}
});
}
</script>
php
投稿で:
$new_long = $database -> escape_value($_POST['long']);
$new_lat = $database -> escape_value($_POST['lat']);
フォームが送信される前に、JS 関数がlong
およびフィールドの値を入力するようにします。lat
次に、php
投稿で入力フィールドを取得したいのですが、空白が返されます。タイプミスはロジックの問題ですか?
注: アドレスが JS コンソールに正しく記録されていることを確認しました。
編集:実際にはDBクエリの失敗エラーが発生していますが、その結果は空白の long
lat
エントリであると思われます。これらの座標は DB に入れられています。