PDA

View Full Version : Nhờ các bạn giúp mình change session trong shopping cart



tombraider
02-03-2015, 09:37 AM
Mình có đoạn code add sản phẩm vào SESSION thành công như sau:
Trong đó size là kích thước áo như (S, M, L, XL)



<?php
$id = $_GET['id'];
$quanlity = $_GET['quanlity'];
$size = $_GET['size'];

if(!isset($_SESSION['cart'][$id][$size]) or $_SESSION['cart'][$id][$size] == "" or $_SESSION['cart'][$id][$size] == NULL)

$_SESSION['cart'][$id][$size] = $quanlity;

else $_SESSION['cart'][$id][$size] = $_SESSION['cart'][$id][$size] + $quanlity;
?>


Giờ mình muốn sau khi vào giỏ hàng khách có thể thay đổi được size (kích thước quần áo), mình dùng đoạn jQuery sau:



$(function() {
$(".changesize").change(function() {
var id = $(this).attr("rel");
var size = $("#product-size-tab"+id+" select").val();
var type = "POST";
var url = "change_size.php";

$.ajax({
type: type,
url: url,
data: {shopping_id : id, shopping_size : size}
})
.done(function(data) {


});


return false;

});
});


File PHP


<select class="changesize" id="product-size-tab<?php echo $data['shopping_id']; ?>" name="shopping_size" rel="<?php echo $data['shopping_id']; ?>">
<option value="<?php echo $item; ?>">Không thay đổi</option>
<?php $sizes = explode(", ", $data['shopping_size']);
foreach ($sizes as $s) {
echo "<option value=\"".preg_replace('/\s+/', '', convert($s))."\">$s</option>";
}
?>
</select>


Và file change_size.php:



<?php
session_start();
if(isset($_POST['shopping_id'])){

$toBeUpdate = $_POST['shopping_id'];
$CartR = $_SESSION['cart'];
$size = $_POST['shopping_size'];

foreach($CartR as $key => $Cart){
if($Cart['id'] == $toBeUpdate){
$_SESSION['cart'][$key]['size'] = $size;
}
}
echo json_encode(array('success'=> true));
}
?>


Không hiểu sai chổ nào mà không update được. Các bạn chỉ giúp với.