Показать сообщение отдельно
  #5 (permalink)  
Старый 16.10.2017, 16:30
Новичок на форуме
Отправить личное сообщение для MikhailM1993 Посмотреть профиль Найти все сообщения от MikhailM1993
 
Регистрация: 14.10.2017
Сообщений: 5

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>&nbsp;<span>0</span></h4>
    <?php endif; ?>
</div>


Вот так выводятся товары на странице:

<div class="goods">
    <a href="?view=product&amp;goods_id=<?=$product['goods_id']?>"><img width="200" height="200" src="<?=PRODUCTIMG?><?=$product['img']?>" alt="Картинка товара" /></a>
    <a class="good_name" href="?view=product&amp;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&amp;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. Прошу прощения за долгий ответ, не было возможности ответить раньше.
Ответить с цитированием