Hvad med:
oReq.open("get", "snap.php?lat=" + localStorage.latitude + "&lon=?" + localStorage.longitude, true);
(du havde også localStorage.lon
i stedet for .longitude
)
Da værdierne (strengene) er i variabler, skal du sammenkæde dem, ikke sætte dem i strengen.
Da du også ser ud til at sende disse ting til din PHP for at gemme i databasen, bør du semantisk set bruge en POST-anmodning...som håndteres anderledes med AJAX-anmodninger.
I din PHP skal du bruge:
$latitude = $_GET["lat"];
$longitude = $_GET["lon"];
for faktisk at få de værdier, der blev sendt med GET-anmodningen. Selvom disse værdier bør escapes for at undgå SQL-injektion.
Desuden er jeg ikke sikker på, hvorfor du indstiller onload
ejendom af AJAX-anmodningen. Brug i stedet onreadystatechange
ejendom...noget i stil med:
oReq.onreadystatechange = function () {
if (oReq.readyState === 4) {
if (oReq.status > 199 && oReq.status < 400) {
console.log("successful response");
} else {
console.log("failed response: " + oReq.status);
}
}
};
.readyState
egenskab refererer til dens tilstand, hvor 4
betyder, at det er gjort (svaret er kommet tilbage). .status
egenskab refererer til HTTP-statuskoden. Normalt mellem 200
&400
er god. Jeg ved, at jeg kun har set mennesker se efter 200
(ikke et område).
OPDATERING:
For at sende POST-parametre i anmodningen, føjer du dem ikke til URL'en - du sender dem i .send()
metode. Her er et eksempel med din kode:
oReq.open("POST", "snap.php", true);
oReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
oReq.send("lat=" + encodeURIComponent(localStorage.latitude) + "&lon=" + encodeURIComponent(localStorage.longitude));
Og for at hente dem i PHP, skal du bruge:
$latitude = $_POST["lat"];
$longitude = $_POST["lon"];