Через раз выводится ответ от PHP на Jquery

169
04 мая 2018, 11:29

Помогите пожалуйста понять. Есть jquery код:

$('.plus-btn').on('click', function(e) {
    e.preventDefault();
    var id = $(this).closest('div.item-quantity').attr("data-id");
    console.log(id);
    $.post("/cart/addAjax/"+id, {}, function (data) {
        $(".cart-qty").html(data);
    });
});

Есть обработчик на PHP

public static function addProduct($id)
{
    $id = intval($id);
    $productsInCart = array();
    if (isset($_SESSION['products'])) {
        $productsInCart = $_SESSION['products'];
    }
    if (array_key_exists($id, $productsInCart)) {
        $productsInCart[$id] ++;
    } else {
        $productsInCart[$id] = 1;
    }
        $_SESSION['products'] = $productsInCart;
    return self::countItems();
}

Обработчик возвращает число товаров в корзине, а jquery получая ответ пишет его в div с классом .cart-qty и всё бы хорошо, но он это делает через раз. Т.е запрос уходит, ответ приходит (скажем число 1) и пишет его в div.cart-qty жму ещё раз на кнопку, ответ приходит, но в div.cart-qty до сих пор 1. Жму ещё раз на кнопку, ответ приходит, но в div.cart-qty уже пишет сразу 3. Почему так?

READ ALSO
Нет прав на создание контейнера с помощью docker-php (нет доступа к docker.sock)

Нет прав на создание контейнера с помощью docker-php (нет доступа к docker.sock)

Необходимо управлять (создавать/удалять/запускать

211
fadeOut по условию. jQuery

fadeOut по условию. jQuery

Всем привет! Подскажите пожалуйстаХочу сделать появление кнопки через fadeIn, и если на неё в течении 3-х секунд не кликнуть, то она исчезнет,...

202