Я использую эту функцию JS для захвата геолокации посетителей и отображения ее на странице. Это отлично работает.Вставка значений из JavaScript непосредственно в базу данных MySQL
function onGeoSuccess(location) {
console.log(location);
var strLocation = '<b>Latitude:</b> ' + location.coords.latitude + '<br />' +
'<b>Longitude:</b> ' + location.coords.longitude + '<br />' +
'<b>City:</b> ' + location.address.city + '<br />' +
'<b>Country:</b> ' + location.address.country + '<br />' +
'<b>Country Code:</b> ' + location.address.countryCode + '<br />' +
'<b>Region:</b> ' + location.address.region + '<br />' +
'<b>Accuracy:</b> ' + location.coords.accuracy + '<br />' +
'<br />'
document.getElementById('geofound').innerHTML = strLocation;
}
//The callback function executed when the location could not be fetched.
function onGeoError(error) {
console.log(error);
}
window.onload = function() {
//geolocator.locateByIP(onGeoSuccess, onGeoError, 2, 'map-canvas');
var html5Options = { enableHighAccuracy: true, timeout: 6000, maximumAge: 0 };
geolocator.locate(onGeoSuccess, onGeoError, true, html5Options, 'geo-details');
};
Теперь я хотел бы сохранить эту информацию в базе данных MySQL при каждом вызове. Что-то вроде:
var strLocation = '$addtodb = "mysql_query('INSERT INTO gpsdb (lat, lon, city, country, code, region, accuracy) values (location.coords.latitude, location.coords.longitude, ...))"'
но я не думаю, что это правильный способ сделать это. Каким будет правильный способ ввода информации в базу данных непосредственно из JS? Мне не нужно эхо-информацию, как сейчас, в JS, я бы предпочел вытащить ее из базы данных после ее ввода. JS будет использоваться только для вставки в БД.
О, хорошо. Таким образом, URL-адрес будет PHP, который получает данные из URL-адреса и вводит их в БД, правильно? Как мне отформатировать строки lat, lon и т. Д. В «serverideurl»? 'url: 'www.foo.com/insert.php?lat=' + location.coords.latitude + '? Lon =' + location.coords.longitude + 'etc ...',' – Fid
вы можете изменить url to 'www.foo.com/ insert.php' и тип' GET' и изменить данные на что-то вроде: 'data: { longitude: location.coords.longitude, city: location.address.city , countrycode: location.address.countryCode, region: location.address.region, Точность: location.coords.accuracy } 'Тогда на стороне php вы можете использовать команды типа' $ _GET ['city'] ' – user2950720