Ajax корзина на сайте. Помощь.
Добрый день! Подскажите как реализовать корзину на сайте методом ajax. Я не силён в js поэтому если можно объясните как новичку. Я не понимаю как средствами ajax добавить товар в массив $_SESSION['cart']? Да и вообще как должна правильно работать ajax корзина? Я хочу что бы при нажатии на ссылку "добавить в корзину" всплывал alert с текстом "Товар успешно добавлен в корзину" и соответственно сам товар добавлялся в массив $_SESSION['cart'].
Заранее большое спасибо!
На данный момент у меня так:
HTML:
Так выводятся товары:
<div class="goods">
<a href="?view=product&goods_id=<?=$product['goods_id']?>"><img width="200" height="200" src="<?=PRODUCTIMG?><?=$product['img']?>" alt="Картинка товара" /></a>
<a class="good_name" href="?view=product&goods_id=<?=$product['goods_id']?>"><?=$product['name']?></a>
<p class="price">Цена: <span><?=$product['price']?> р.</span></p>
<a href="?view=addtocart&goods_id=<?=$product['goods_id']?>"><img class="addtocart" src="<?=TEMPLATE?>images/addcart.png" alt="Добавить в корзину" /></a>
</div><!-- .goods -->
Такой блок корзины:
<div class="basket">
<?php if($_SESSION['total_quantity']): ?>
<a href="?view=cart"><img src="<?=TEMPLATE?>images/cart.png" alt="Корзина" /></a>
<h4>Товаров в <a href="?view=cart">Вашей корзине:</a><br /> <span><?=$_SESSION['total_quantity']?></span> на сумму <span><?=$_SESSION['total_sum']?></span> руб.</h4>
<?php else: ?>
<a href="?view=cart"><img src="<?=TEMPLATE?>images/cart.png" alt="Корзина" /></a>
<h4>Товаров в <a href="?view=cart">Вашей корзине:</a> <span>0</span></h4>
<?php endif; ?>
</div>
При клике на ссылку "добавить в корзину" срабатывают функции:
PHP
addtocart:
function addtocart($goods_id, $qty = 1){
if(isset($_SESSION['cart'][$goods_id])){
// если в массиве cart уже есть добавляемый товар
$_SESSION['cart'][$goods_id]['qty'] += $qty;
return $_SESSION['cart'];
}else{
// если товар кладется в корзину впервые
$_SESSION['cart'][$goods_id]['qty'] = $qty;
return $_SESSION['cart'];
}
}
total_sum:
function total_sum($goods){
$total_sum = 0;
$query = "SELECT goods_id, name, price, img
FROM goods
WHERE goods_id IN (" .implode(',',array_keys($goods)). ")";
$res = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($res)){
$_SESSION['cart'][$row['goods_id']]['name'] = $row['name'];
$_SESSION['cart'][$row['goods_id']]['price'] = $row['price'];
$_SESSION['cart'][$row['goods_id']]['img'] = $row['img'];
$total_sum += $_SESSION['cart'][$row['goods_id']]['qty'] * $row['price'];
}
return $total_sum;
}
total_quantity
function total_quantity(){
$_SESSION['total_quantity'] = 0;
foreach($_SESSION['cart'] as $key => $value){
if(isset($value['price'])){
// если получена цена товара из БД - суммируем кол-во
$_SESSION['total_quantity'] += $value['qty'];
}else{
// иначе - удаляем такой ID из сессиии (корзины)
unset($_SESSION['cart'][$key]);
}
}
}
|