laimas, по поводу количества, можно конечно сделать инпут где и вводить количество, но мой шаблон этого не подразумевает...
На данный момент у меня так:
Вот такая у меня корзина:
<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>
Вот так выводятся товары на странице:
<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 rel="<?=$product['goods_id']?>" id="<?=$product['price']?>" href="?view=addtocart&goods_id=<?=$product['goods_id']?>"><img class="addtocart" src="<?=TEMPLATE?>images/addcart.png" alt="Добавить в корзину" /></a>
</div>
Далее при клике на ссылку добавить в корзину вызываются функции:
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]);
}
}
}
Ну и далее как я и писал я не понимаю что делать что бы заставить данные передаваться AJAX-ом, вот мой набросок скрипта... возможно в корне не правильный но всё же...
$(".addtocart").click(functions(e){
e.preventDefault(); // этим отменяю стандартное поведение ссылки
// далее как я понимаю, мне нужно создать переменные и положить в них данные товара, например вот так.
var good_id = $(this).attr("rel"); // здесь получаю id товара
var price = $(this).attr("id");// здесь получаю цену товара
var qty = 1;
// и вот после того как я получил значения в переменные, я не понимаю что делать....
$.ajax({
url: './', // обрабатываю я же всё здесь же в индексном файле
type: 'POST',
data: {good_id: good_id, price: price, qty: qty},
success:function{
},
error:function(){
}
};
});
P.S. Прошу прощения за долгий ответ, не было возможности ответить раньше.