header.php
<!doctype html><html lang="en"><head><meta charset="utf-8"><title>Simple Cart</title></head><body><a href="index.php">Index</a> |<a href="cart.php">Cart<?php if (isset($_SESSION['cart'])) : ?><?php echo count($_SESSION['cart']);; ?><?php endif; ?></a>
footer.php
</body></html>
index.php
<?phpsession_start();if (isset($_GET['pro_id'])) {$proid = $_GET['pro_id'];if (!empty($_SESSION['cart'])) {$acol = array_column($_SESSION['cart'], 'pro_id');if (in_array($proid, $acol)) {$_SESSION['cart'][$proid]['qty'] += 1;} else {$item = ['pro_id' => $_GET['pro_id'], 'qty' => 1];$_SESSION['cart'][$proid] = $item;}} else {$item = ['pro_id' => $_GET['pro_id'], 'qty' => 1];$_SESSION['cart'][$proid] = $item;}}?><?php include 'header.php'; ?><h2>Simple Cart (Core PHP)</h2>Product 1 <a href="index.php?pro_id=1">Add to Cart</a><br>Product 2 <a href="index.php?pro_id=2">Add to Cart</a><br>Product 3 <a href="index.php?pro_id=3">Add to Cart</a><br><?php include 'footer.php'; ?>
คำอธิบายประกอบแต่ละบรรทัด
if (isset($_GET['pro_id'])) {
# กำหนดค่า proid ซึ่งรับจาก get
$proid = $_GET['pro_id'];
if (!empty($_SESSION['cart'])) { # กรณีมีตัวแปรเซสชัน cart อยู่แล้ว
# ดึงเฉพาะค่า pro_id ทั้งหมดใน cart ออกมา (เป็น array of pro_id)
$acol = array_column($_SESSION['cart'], 'pro_id');
if (in_array($proid, $acol)) { # กรณี id ที่รับมาจาก get อยู่ใน cart อยู่แล้ว
# เพิ่มจำนวนสินค้านั้นเข้าไป
$_SESSION['cart'][$proid]['qty'] += 1;
} else { # กรณี id ที่รับมาจาก get นั้น ยังไม่เคยอยู่ใน cart
# กำหนดค่าให้ item ที่จะเพิ่ม
$item = ['pro_id' => $_GET['pro_id'], 'qty' => 1];
# แล้วเอาค่า item มาใส่ cart
$_SESSION['cart'][$proid] = $item;
}
} else { # กรณียังไม่เคยมีตัวแปรเซสชัน cart มาก่อน
# กำหนดค่าให้ item ที่จะเพิ่ม
$item = ['pro_id' => $_GET['pro_id'], 'qty' => 1];
# สร้างเซสชัน cart แล้วเอาค่า item มาใส่ cart
$_SESSION['cart'][$proid] = $item;
}
}
cart.php
<?php session_start(); ?><?php include 'header.php'; ?>| <a href="emptycart.php">Empty Cart</a><br><br><table border="1"><thead><tr><th>S.no</th><th>Product Name</th><th>Quantity</th><th colspan="2">Action</th></tr></thead><tbody><?phpif (isset($_SESSION['cart'])) :$i = 1;foreach ($_SESSION['cart'] as $cart) :?><tr><td><?php echo $i; ?> # </td><td> Product <?= $cart['pro_id']; ?></td><td><form action="update.php" method="post"><input type="number" value="<?= $cart['qty']; ?>" name="qty" min="1"><input type="hidden" value="<?= $cart['pro_id']; ?>" name="upid" ></td><td><input type="submit" name="update" value="Update"></form></td><td><a href="removecartitem.php?id=<?= $cart['pro_id']; ?>">Remove</a></td></tr><?php$i++;endforeach;endif;?></tbody></table><?php include 'footer.php'; ?>
update.php
<?phpsession_start();if ($_POST['update']) {$upid = $_POST['upid'];$acol = array_column($_SESSION['cart'], 'pro_id');if (in_array($_POST['upid'], $acol)) {$_SESSION['cart'][$upid]['qty'] = $_POST['qty'];} else {$item = ['pro_id' => $upid,'qty' => 1];$_SESSION['cart'][$upid] = $item;}header("location: cart.php");}
removecartitem.php
<?phpsession_start();if (isset($_GET['id'])) {$proid = $_GET['id'];unset($_SESSION['cart'][$proid]);header("location: cart.php");}?>
emptycart.php
<?phpsession_start();unset($_SESSION['cart']);header("location: cart.php");?>
Sign up here with your email
ConversionConversion EmoticonEmoticon