-Chuyển hướng URL (chuyển hướng trang)
header('location:index.php?controller=CartController');
-ứng dụng session trong việc tạo giỏ hàng:
$_SESSION['cart']: thong tin gio hang
td01 - 2 : key-value: mã sách và số lượng
td02 - 3: key-value: mã sách và số lượng
$_SESSION['cart'] = ['td01'=>2, 'td02'=>3]
Thực tế: var_dump($_SESSION);
==> Mảng 2 chiều:
Array ( [cart] => Array ( [td01] => 1 ) )
Thực tế: var_dump($_SESSION['cart']);
==> Mảng 1 chiều:
Array ( [td01] => 1 )
-Khi truyền giá trị lên thanh URL, nếu số lượng ko có thì mặc định là 01 sản phẩm
index.php?controller=CartController&action=add&id=td01
Để lấy giá trị của URL ta dùng hàm getindex
$id = getIndex('id'); //$id=td01;
$sl = getIndex('sl', 1);//sl=1
Lưu ý:
if(!isset($_SESSION)) session_start();
var_dump($_SESSION);
Trước khi dùng session, phải start() dù cho giá trị $_SESSION là empty- rỗng.
Xây dựng 1 giỏ hàng ảo:
<?php function add() { if(!isset($_SESSION)) session_start(); $_SESSION['CART']=array('td01'=>2,'td02'=>5); //unset($_SESSION['CART']); var_dump($_SESSION); }
Thông tin giỏ hàng được lưu vào mảng 1 chiều:
$_SESSION['cart'], nhưng do lần đầu khi chưa mua hàng thì mảng rỗng, nên phải dùng mảng tam[] để khới tạo giá trị rồi gán ngược lại cho mảng $_SESSION['cart'].
function add() { //index.php?controller=CartController&action=add&id=td01 $id = getIndex('id'); //$id=td01; $sl = getIndex('sl', 1);//sl=1 $tam = isset($_SESSION['cart'])?$_SESSION['cart']:[];//$tam=[]; if (isset($tam[$id])) { $tam[$id] += $sl; } else $tam[$id]=$sl; $_SESSION['cart']= $tam; header('location:index.php?controller=CartController'); }
kiểm tra giỏ hàng dùng hàm print_r trong index:
function index() { print_r($_SESSION); //hoặc: print_r($_SESSION['cart']);
}
CART CONTROLLER THÊM SAN PHAM KHI XAY DUNG XONG
<?php class CartController { function __construct() { $action =getIndex('action','index'); if(method_exists($this,$action)){ $ref=new ReflectionMethod($this, $action); if(!$ref->isPublic()){ echo "ham ko duoc public";exit; } $this->$action(); } else{ echo "ham ".$action. " chua xay dung!"; } } function index() { //if(!isset($_SESSION)) session_start(); var_dump($_SESSION['cart']); } function add() { //if(!isset($_SESSION)) session_start(); $id=getIndex("id"); $sl=getIndex("sl",1); $tam=isset($_SESSION['cart'])?$_SESSION['cart']:[]; if(isset($tam[$id])){ $tam[$id]+=$sl; } else $tam[$id]=$sl; $_SESSION['cart']=$tam; header('location:index.php?controller=CartController'); }function delete() {$id = getIndex('id'); $tam = $_SESSION['cart']?$_SESSION['cart']:[]; unset($tam[$id]); $_SESSION['cart']= $tam; header('location:index.php?controller=CartController'); }} ?>-Thêm tính năng chọn up/down số lượng sản phẩm bằng form
<?php <form action="index.php" method="get"> <input type="hidden" name="controller" value="CartController"> <input type="hidden" name="action" value="add"> <input type="hidden" name="id" value="<?php echo $data['masach'];?>"> <input type="number" name="sl" value="1" min="1" max="10" autofocus> <input type="submit" value="addcart"> </form>