Хорошо, поэтому у меня возникли некоторые проблемы с попыткой выяснить, как передать некоторые данные, которые я сохранил в localStorage, на скрипт php, который я написал, поэтому я могу отправить его в мою базу данных на сервере. Ранее я нашел код (https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest), который выглядел так, как будто это сработает, но мне не повезло.Как передать сохраненные веб-данные localStorage в php-скрипт?
Вот код, где я храню данные и не пытаться передать ее моей phpscript
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(initialize, showError, takeSnap);
}
else {
alert("Geolocation is not supported by this browser.");
}
}
function initialize(position) {
var lat = position.coords.latitude,
lon = position.coords.longitude;
var mapOptions = {
center: new google.maps.LatLng(lat, lon),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true
}
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lon),
map: map,
title: "Current Location"
});
}
function showError(error) {
switch (error.code) {
case error.PERMISSION_DENIED:
alert("User denied the request for Geolocation.");
break;
case error.POSITION_UNAVAILABLE:
alert("Location information is unavailable.");
break;
case error.TIMEOUT:
alert("The request to get user location timed out.");
break;
case error.UNKNOWN_ERROR:
alert("An unkown error occurred.");
break;
}
}
function storeLocal(position) {
if (typeof (Storage) !== "undefined") {
var lat = position.coords.latitude,
lon = position.coords.longitude;
localStorage.latitude = lat;
localStorage.longitude = lon;
}
else {
alert("Your Browser doesn't support web storage");
}
return
}
function snapShot() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(storeLocal, showError);
}
else {
alert("Geolocation is not supported by this browser.");
}
var oReq = new XMLHttpRequest();
oReq.onload = reqListener;
oReq.open("post", "snap.php?lat=" + localStorage.latitude + "&lon=" + localStorage.longitude, true);
oReq.send();
}
function reqListener() {
console.log(this.reponseText);
}
Это они скрипт я написал для сохранения значения в базе данных
<?php
// Connecting to the database
mysql_connect("localhost", "username", "password");
mysql_select_db("db_name");
$latitude = mysql_real_escape_string($_GET["lat"]);
$longitude = mysql_real_escape_string($_GET["lon"]);
// Submit query to insert new data
$sql = "INSERT INTO locationsTbl(locID, lat, lon) VALUES('NULL', '". $latitude ."', '". $longitude . "')";
$result = mysql_query($sql);
// Inform user
echo "<script>alert('Location saved.');</script>";
// Close connection
mysql_close();
?>
Да, но я не уверен, как использовать запрос POST в моей ситуации, так как я не собираю информацию из поля из формы. То, как он работает, - это то, что я создал кнопку на моей странице. В нем есть прослушиватель событий, который ищет щелчок по изображению, который захватывает данные геолокации и сохраняет его. – RenegadeScar
@RenegadeScar Я понимаю, но все, что вы делаете, это изменение 'oReq.open (« get »' to 'oReq.open (« post »). Затем в PHP вы получаете доступ к значениям с' $ _POST' вместо '$ _GET ' – Ian
Ооооо, я вижу. Извините, я вроде как новичок в javascript и в средней программе в лучшем случае. Спасибо, я попробую. – RenegadeScar