sql >> Databáze >  >> RDS >> Mysql

Jak mohu předat uložená webová data localStorage do skriptu php?

Co třeba:

oReq.open("get", "snap.php?lat=" + localStorage.latitude + "&lon=?" + localStorage.longitude, true);

(také jste měli localStorage.lon místo .longitude )

Protože hodnoty (řetězce) jsou v proměnných, musíte je zřetězit, nikoli vkládat do řetězce.

Vzhledem k tomu, že se zdá, že tyto věci předáváte svému PHP, abyste je uložili do databáze, sémanticky řečeno, měli byste používat požadavek POST...který se s požadavky AJAX zpracovává jinak.

Ve vašem PHP musíte použít:

$latitude = $_GET["lat"];
$longitude = $_GET["lon"];

skutečně získat hodnoty, které byly odeslány s požadavkem GET. Ačkoli by tyto hodnoty měly být zakódovány, aby se zabránilo vkládání SQL.

Také si nejsem jistý, proč nastavujete onload vlastnost požadavku AJAX. Místo toho použijte onreadystatechange vlastnost...něco jako:

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 vlastnost odkazuje na svůj stav, kde 4 znamená, že je hotovo (odpověď se vrátila). .status vlastnost odkazuje na stavový kód HTTP. Normálně mezi 200 &400 je dobrý. Vím, že jsem viděl pouze lidi zkontrolujte 200 (není rozsah).

AKTUALIZACE:

Aby bylo možné předat parametry POST v požadavku, nepřipojujete je k adrese URL – předáváte je v .send() metoda. Zde je příklad vašeho kódu:

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));

A k jejich načtení v PHP byste použili:

$latitude = $_POST["lat"];
$longitude = $_POST["lon"];


  1. Jak citovat hodnoty pomocí group_concat

  2. Server MySQL-Wamp po upgradu win10 nefunguje

  3. Existuje ekvivalent Profileru pro MySql?

  4. Zálohujte databázi(y) pomocí dotazu bez použití mysqldump