Giỏ hàng với _SESSION trong PHP

Bài đăng này được lấy từ một phần của cuốn sách Hướng dẫn PHP. Lập trình với PHP và MySQL có sẵn dưới dạng phiên bản in ra giấy hoặc dưới dạng phiên bản Kindle có thể tải xuống. Bấm vào đây để trở lại phiên bản giấy

Danh sách sau đây là giỏ hàng hoàn chỉnh trong PHP

 

List of All Products

Product   Amount   Action
    Add to cart
Reset Cart



Cart

Product   Qty   Amount   Action
      Delete from cart
Total :

Ví dụ về giỏ hàng sử dụng các phiên sau để duy trì trạng thái của giỏ hàng

$_SESSION[“qty”][i] Lưu trữ số lượng cho từng sản phẩm
$_SESSION[“amounts”][i] Lưu trữ giá của từng sản phẩm
$_SESSION[“cart”][i] Xác định mặt hàng nào đã được thêm vào giỏ hàng
$_SESSION[“total”] Lưu trữ tổng chi phí

Các phiên thực sự là các mảng nên trong trường hợp

$_SESSION[“số lượng”][i]

là đại lượng của phần tử mang số i

Mô tả mã giỏ hàng PHP

Chúng tôi bắt đầu bằng cách xác định PHP để sử dụng các phiên theo

session_start();

Điều này phải ở trên cùng của trang PHP

Tiếp theo, chúng tôi thiết lập các sản phẩm của mình và điền vào các phiên của chúng tôi. Trong ví dụ này, chúng tôi đang sử dụng một mảng cố định các mô tả và số lượng sản phẩm. Bạn có thể muốn làm điều này trong ứng dụng của mình hoặc bạn có thể đọc dữ liệu trong mảng $product và $amounts từ cơ sở dữ liệu

//---------------------------
 //initialise sessions

 //Define the products and cost
 $products = array("product A", "product B", "product C");
 $amounts = array("19.99", "10.99", "2.99");

 if ( !isset($_SESSION["total"]) ) {

  $_SESSION["total"] = 0;

  for ($i=0; $i< count($products); $i++) {
   $_SESSION["qty"][$i] = 0;
   $_SESSION["amounts"][$i] = 0;
 }
}

Đoạn mã sau sẽ đặt lại và xóa các phiên khi liên kết Đặt lại giỏ hàng được chọn

//---------------------------
  //Reset
  if ( isset($_GET['reset']) )
   {
    if ($_GET["reset"] == 'true')
    {
     unset($_SESSION["qty"]); //The quantity for each product
     unset($_SESSION["amounts"]); //The amount from each product
     unset($_SESSION["total"]); //The total cost
     unset($_SESSION["cart"]); //Which item has been chosen
   }
}

Đoạn mã sau thêm một mặt hàng vào các phiên khi nhấp vào liên kết 'Thêm vào giỏ hàng'

//---------------------------
//Add
if ( isset($_GET["add"]) )
{
$i = $_GET["add"];

$qty = $_SESSION["qty"][$i] + 1;

$_SESSION["amounts"][$i] = $amounts[$i] * $qty;
$_SESSION["cart"][$i] = $i;
$_SESSION["qty"][$i] = $qty;
}

và thao tác sau sẽ xóa một mặt hàng khỏi giỏ hàng khi nhấp vào liên kết 'Xóa khỏi giỏ hàng'

 //---------------------------
 //Delete
 if ( isset($_GET["delete"]) )
 {
   $i = $_GET["delete"];
   $qty = $_SESSION["qty"][$i];
   $qty--;
   $_SESSION["qty"][$i] = $qty;

 //remove item if quantity is zero
 if ($qty == 0) {
   $_SESSION["amounts"][$i] = 0;
   unset($_SESSION["cart"][$i]);
 }
 else
 {
   $_SESSION["amounts"][$i] = $amounts[$i] * $qty;
 }
 }

Phần còn lại của mã là màn hình trực quan sử dụng bảng và các vòng lặp khác nhau để hiển thị danh sách sản phẩm và chi tiết giỏ hàng cùng với các liên kết

Bài đăng này được lấy từ một phần của cuốn sách Hướng dẫn PHP. Lập trình với PHP và MySQL có sẵn dưới dạng phiên bản in ra giấy hoặc dưới dạng phiên bản Kindle có thể tải xuống. Bấm vào đây để trở lại phiên bản giấy

PHP-eSeller là một ứng dụng hoàn chỉnh sử dụng giỏ hàng bằng Phiên PHP và có sẵn từ đây

$Session PHP là gì?

Phiên PHP được dùng để lưu trữ và chuyển thông tin từ trang này sang trang khác tạm thời (cho đến khi người dùng đóng trang web). Kỹ thuật phiên PHP được sử dụng rộng rãi trong các trang web mua sắm, nơi chúng tôi cần lưu trữ và chuyển thông tin giỏ hàng e. g. tên người dùng, mã sản phẩm, tên sản phẩm, giá sản phẩm, v.v. từ trang này sang trang khác.

Làm cách nào để tạo giỏ hàng đơn giản trong PHP mà không cần cơ sở dữ liệu?

Tất cả hành động của giỏ hàng được thực hiện bằng cách sử dụng jQuery AJAX. .
Thư viện sản phẩm và HTML giỏ hàng. Tôi đã thiết kế landing page gồm 2 phần chính là sản phẩm và giỏ hàng. .
Nhận mảng sản phẩm và tạo thư viện. .
Thao tác giỏ hàng jQuery AJAX. .
Mã PHP để thực hiện hành động giỏ hàng. .
Lớp sản phẩm PHP

Làm cách nào để tạo phiên trong PHP?

Bạn có thể bắt đầu một phiên trong PHP bằng cách sử dụng hàm session_start() . Theo mặc định, chức năng này sẽ kiểm tra phiên hiện có trước tiên. Nếu một phiên đã tồn tại, nó sẽ không làm gì cả, nhưng nó sẽ tạo một phiên nếu không có phiên nào tồn tại trước đó.

Cách thêm vào giỏ hàng hoạt động trong PHP?

Chúng là tính năng thêm vào giỏ hàng, xóa một mặt hàng khỏi giỏ hàng, xóa toàn bộ giỏ hàng và tương tự. Trong đoạn mã trên, tôi đã thêm tùy chọn HTML để thêm sản phẩm vào giỏ hàng từ thư viện sản phẩm. Khi người dùng nhấp vào nút 'Thêm vào giỏ hàng', biểu mẫu HTML sẽ chuyển id sản phẩm tới tập lệnh PHP phụ trợ .