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