Chuyển từ php sang javascript. Cách chuyển một biến từ JavaScript sang PHP

Tình cờ là do tính chất công việc của tôi, tôi phải trả lời cả hai câu hỏi phức tạp vấn đề kỹ thuật, và thẳng thắn là ngớ ngẩn. Phải làm gì, trình độ đào tạo của các chuyên gia khác nhau là khác nhau.

Họ hỏi: “Làm cách nào để chuyển một biến từ Javascript sang PHP.” Tôi muốn bắt đầu câu trả lời cho câu hỏi này bằng việc Javascript và PHP chạy trên các nền tảng khác nhau. máy vật lý, có nghĩa là chỉ đơn giản là “chuyển một biến”, theo cách hiểu thông thường về quy trình này, sẽ không hiệu quả.

Vì Javascript chạy trên máy khách(client), và PHP ở phía server (server), thì hãy gọi việc truyền dữ liệu giữa Javascript và PHP là thuật ngữ “trao đổi client-server” thì sẽ đúng hơn.

Trên web, việc trao đổi dữ liệu được thực hiện theo sơ đồ sau: một yêu cầu được gửi đến máy chủ từ máy khách, yêu cầu này được máy chủ xử lý, sau đó nó trả về một số dữ liệu (phản hồi) cho máy khách. Phương thức trao đổi này cũng được chính trình duyệt sử dụng. URL mà bạn nhập vào thanh địa chỉ chính là yêu cầu. Và phản hồi là HTML, được hiển thị trên trang trình duyệt.

Tuy nhiên, không nhất thiết bản thân trình duyệt phải yêu cầu dữ liệu từ máy chủ. Mã Javascript của bạn chạy trên trang cũng có thể hoạt động như một ứng dụng khách. Để làm điều này, họ sử dụng thành phần trình duyệt XMLHttpRequest tích hợp sẵn, thành phần này có thể gửi yêu cầu đến máy chủ và nhận phản hồi từ nó, trong khi bản thân trang HTML hoàn toàn không được cập nhật hoặc thay đổi.

Làm việc với máy chủ thông qua một đối tượng XMLHttpRequest thường được gọi nhiều hơn từ phổ biến- AJAX.

Tuy nhiên, cá nhân tôi không khuyên bạn nên làm việc trực tiếp với đối tượng này. Vấn đề là trên các trình duyệt khác nhau nó hoạt động hơi khác một chút và điều này sẽ cần được tính đến trong mã. Ngoài ra, Javascript "thuần túy" không có phương tiện tiện lợi làm việc với các sự kiện, vì vậy cuối cùng bạn sẽ có được một đoạn mã tốt, rất có thể sẽ có "lỗi".

Mã sử ​​dụng thư viện này khá đơn giản và ngắn gọn. ví dụ: nếu bạn cần chuyển giá trị v=6789 cho máy chủ thì bạn có thể chạy đoạn mã sau

JQuery.get("/index.php?v=6789", function(result)(alert(result); ));

Trong trường hợp này, tập lệnh của bạn tại /index.php sẽ nhận giá trị trong biến $_GET[‘v’] . Và mọi thứ mà nó xuất ra luồng đầu ra (ví dụ: sử dụng echo) sẽ kết thúc bằng biến kết quả và sẽ được xuất ra hộp thoại bật lên cảnh báo().

Như bạn có thể thấy, mọi thứ đều đơn giản.

Tương tự, bạn có thể gửi dữ liệu qua POST, cũng như gửi dữ liệu được mã hóa bằng JSON (phương thức được sử dụng phổ biến nhất), nhưng tôi khuyên bạn nên tự đọc về điều này trong tài liệu jQuery (xem các phương thức .ajax(), .post()) .

8 câu trả lời

Nói cách khác, HTML/HTTP không có trạng thái, nói cách khác là những gì bạn đã làm/đã thấy trên đó trang trước, hoàn toàn không liên quan trang hiện tại. Ngoại trừ khi bạn đang sử dụng những thứ như phiên, cookie hoặc GET/POST. Phiên và bánh quy khá dễ sử dụng và phiên này an toàn hơn nhiều so với cookie. An toàn hơn, nhưng không hoàn toàn an toàn.

phiên họp:

//Trên trang 1 $_SESSION["varname"] = $var_value; //Trên trang 2 $var_value = $_SESSION["varname"];

Đừng quên chạy session_start(); trên cả hai trang này, trước khi thử truy cập mảng $_SESSION và cả trước khi bất kỳ đầu ra nào được gửi tới trình duyệt.

//Một trang 1 $_COOKIE["varname"] = $var_value; //Trên trang 2 $var_value = $_COOKIE["varname"];

Một sự khác biệt lớn giữa phiên và cookie là giá trị của biến sẽ được lưu trữ trên máy chủ nếu bạn đang sử dụng phiên và trên máy khách nếu bạn đang sử dụng cookie. Tôi không thể nghĩ ra bất kỳ lý do chính đáng nào để sử dụng cookie thay vì phiên, trừ khi bạn muốn dữ liệu tồn tại giữa các phiên, nhưng thậm chí sau đó tốt hơn là lưu trữ dữ liệu đó trong DB và truy xuất dữ liệu dựa trên tên người dùng hoặc ID.

NHẬN và ĐĂNG