12} 13 if($ok == 2) 14 {
15 // code xử lý giỏ hàng ở trên. 16} 16}
17 ?>
Đoạn code này, ta sử dụng biến $ok để làm biến kiểm tra, mặc định khi load dữ liệu biến $ok sẽ bằng 1. Và khi trong giỏ hàng tồn tại sách thì chúng ta sẽ thay đổi biến $ok thành 2. Và gọi giỏ hàng như code ở trên.
Ở phần trên, ta cũng có đề cập khi người dùng tiến hành chỉnh sửa số lượng từng món hàng đơn lẻ qua textbox và nhấn cập nhận thì hệ thống sẽ tiến hành chỉnh sửa lại thông tin giỏ hàng. Vậy chúng ta sẽ xử lý như thế nào cho trương hợp đó.
Nếu chú ý, các bạn sẽ thấy dòng code chứa textbox cho phép người dùng nhập số lượng có một tham số đặc biêt là name=qty[$row[id]]. Vậy tham số này được dùng để làm gì ?.
Tham số này, nói cho chúng ta biết số lượng đang hiển thị là thuộc mã sản phẩm nào. Vậy khi tiến hành cập nhật giỏ hàng ta sẽ kiểm tra, nếu $qty[$row[id]] mà có giá trị là 0. Tức là người đó muốn xóa bỏ giỏ hàng. Ngược lại, ta chỉ viêc cập nhật giỏ hàng $id tương ứng với số lượng nhập ở textbox.
01 <?php
02 if(isset($_POST['submit'])) 03 { 03 {
04 foreach($_POST['qty'] as $key=>$value) 05 { 05 {
06 if( ($value == 0) and (is_numeric($value))) 07 { 07 {
08 unset ($_SESSION['cart'][$key]); 09 } 09 }
10 elseif(($value> 0) and(is_numeric($value)))11 { 11 { 12 $_SESSION['cart'][$key]=$value; 13 } 14 } 15 header("location:cart.php"); 16 }
17?>
Việc xóa món hàng ở trên chỉ đơn giản là hủy bỏ session của id đó. Việc cập nhật số lượng chỉ đơn giản là gán đè số lượng người nhập (thẻ value trong textbox) vào số lượng đang lưu trong session.
Vậy code hoàn chỉnh của trang cart.php này sẽ như sau:
01 <?php
02 if(isset($_POST['submit'])) 03 { 03 {
04 foreach($_POST['qty'] as $key=>$value) 05 { 05 {
06 if( ($value == 0) and (is_numeric($value))) 07 { 07 {
08 unset ($_SESSION['cart'][$key]); 09 } 09 }
10 elseif(($value > 0) and (is_numeric($value))) 11 { 11 { 12 $_SESSION['cart'][$key]=$value; 13 } 14 } 15 header("location:cart.php"); 16 } 17?> 18 <html> 19 <head>
20 <title>Demo Shopping Cart - Created By My Kenny</title> 21 <link rel="stylesheet" href="style.css" /> 21 <link rel="stylesheet" href="style.css" />
22</head>23 <body> 23 <body>
24 <h1>Demo Shopping Cart</h1> 25 <? 25 <? 26 $ok=1; 27 if(isset($_SESSION['cart'])) 28{ 29 foreach($_SESSION['cart'] as $k => $v) 30 { 31 if(isset($k)) 32 { 33 $ok=2; 34 } 35 } 36 } 37 if($ok == 2) 38 {
39
40 echo "<form action=cart.php method=post>"; 41 foreach($_SESSION['cart'] as$key=>$value) 41 foreach($_SESSION['cart'] as$key=>$value) 42 {
43 $item[]=$key;44 } 44 }
45 $str=implode(",",$item);
46 $connect=mysql_connect("localhost","root","root") ordie("Can not connect database"); connect database");
47 mysql_select_db("shop",$connect); 48 session_start(); 48 session_start();
49 $sql="select * from books where id in ($str)"; 50 $query=mysql_query($sql); 50 $query=mysql_query($sql);