Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để chuyển dữ liệu web localStorage đã lưu sang tập lệnh php?

Làm thế nào về:

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

(bạn cũng đã có localStorage.lon thay vì .longitude )

Vì các giá trị (chuỗi) nằm trong các biến, bạn cần nối chúng, không đặt chúng trong chuỗi.

Ngoài ra, vì dường như bạn đang chuyển những thứ này sang PHP của mình để lưu vào cơ sở dữ liệu, về mặt ngữ nghĩa, bạn nên sử dụng một yêu cầu POST ... được xử lý khác với các yêu cầu AJAX.

Trong PHP của bạn, bạn cần sử dụng:

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

để thực sự nhận được các giá trị đã được gửi với yêu cầu GET. Mặc dù các giá trị này nên được thoát ra để tránh bị chèn SQL.

Ngoài ra, tôi không chắc tại sao bạn lại đặt onload thuộc tính của yêu cầu AJAX. Thay vào đó, hãy sử dụng onreadystatechange tài sản ... đại loại như:

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 thuộc tính đề cập đến trạng thái của nó, trong đó 4 có nghĩa là nó đã hoàn tất (phản hồi đã quay trở lại). .status thuộc tính đề cập đến mã trạng thái HTTP. Thông thường từ 200 &400 tốt. Tôi biết tôi đã chỉ thấy mọi người kiểm tra 200 (không phải là một phạm vi).

CẬP NHẬT:

Để chuyển các tham số POST trong yêu cầu, bạn không nối chúng vào URL - bạn chuyển chúng vào .send() phương pháp. Đây là một ví dụ với mã của bạn:

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

Và để truy xuất chúng bằng PHP, bạn sẽ sử dụng:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các trường MySQL phổ biến và các kiểu dữ liệu thích hợp của chúng

  2. DELIMITER // làm gì trong Trình kích hoạt?

  3. kích hoạt tài khoản php / mysql

  4. Tải lên nhiều hình ảnh và lưu trữ đường dẫn của chúng trong cơ sở dữ liệu

  5. Mysql không thể kết nối - Quyền truy cập bị từ chối (sử dụng mật khẩu có)