Обновление количества продукта с помощью Ajax - PullRequest
0 голосов
/ 19 ноября 2018

Итак, на моем сайте Shopify у меня есть кнопка плюс / минус, чтобы обновить количество товара.В настоящее время он отправляет форму при нажатии любой из этих кнопок.Теперь я реализую корзину с выдвижными ящиками, используя ajax, поэтому вместо того, чтобы просто отправлять форму и перезагружать страницу при нажатии любой из этих кнопок, мне нужно обновить корзину с помощью Ajax, чтобы ей не требовалась страница для перезагрузки..

Это код для моих кнопок количества:

// This button will increment the value
    $('.ajax-cart-form').on("click",'.qtyplus.qtyplus-2', function(){
        // Stop acting like a button

        // Get the field name
        fieldName = $(this).attr('field');
        // Get its current value
        var currentVal = parseInt($('input[id='+fieldName+']').val());
        // If is not undefined
        if (!isNaN(currentVal)) {
            // Increment
            $('input[id='+fieldName+']').val(currentVal + 1);
        } else {
            // Otherwise put a 0 there
            $('input[id='+fieldName+']').val(0);
        }
    $(this).closest('form').submit();
    });
    // This button will decrement the value till 0
    $(".ajax-cart-form").on("click", '.qtyminus.qtyminus-2' ,function() {
        // Stop acting like a button

        // Get the field name
        fieldName = $(this).attr('field');
        // Get its current value
        var currentVal = parseInt($('input[id='+fieldName+']').val());
        // If it isn't undefined or its greater than 0
        if (!isNaN(currentVal) && currentVal > 0) {
            // Decrement one
            $('input[id='+fieldName+']').val(currentVal - 1);
        } else {
            // Otherwise put a 0 there
            $('input[id='+fieldName+']').val(0);
        }
    $(this).closest('form').submit();
    });

И это функция добавления для отображения моей корзины ajax:

  $.getJSON(_config.shopifyAjaxCartURL, function(cart) {
    $('.ajax-cart-form .cart-item').remove();
    $('.ajax-subtotal .drawer-subtotal').remove();
    $.each(cart.items, function(index, cartItem) {
      var line= index +1;
var cents = "";

if (cartItem.price % 100 < 10) {
cents = "0";
}
var price = parseInt(cartItem.price/100) + "." + cents + cartItem.price % 100;
        $('.ajax-cart-form').append("<div class='cart-item desktop-full mobile-full'><div class='cart-image desktop-5'><a href='"+ cartItem.url +"'title='"+cartItem.title+"'><img src='"+ cartItem.image +"'></a></div><div class='cart-title desktop-7'><p>"+ cartItem.title +"</p><div class='cart-item-actions'><span class='drawer-price'><strong>£ "+ price +" GBP</strong></span></div><div class='cart-quantity'><input type='button' value='-' class='qtyminus qtyminus-2 CartCount qty-btn' field='updates_"+ cartItem.id +"'/><input name='updates[]' id='updates_"+ cartItem.id +"' class='quantity CartCount' value='"+ cartItem.quantity +"' /><input type='button' value='+' class='qtyplus qtyplus-2 CartCount qty-btn' field='updates_"+ cartItem.id +"' /></div></div>");

  });
  $(function(index, cartItem) {
        var line2= index +1;
        var cents2 = "";

if (cart.original_total_price % 100 < 10) {
cents2 = "0";
}
var price2 = parseInt(cart.original_total_price/100) + "." + cents2 + cart.original_total_price % 100;
  $('.ajax-subtotal').append("<div class='drawer-subtotal'><h3>Subtotal <span class='money'>£"+ price2 +" GBP</span></h3></div>");
  });
});

Я думаю, это 'может быть что-то вроде

jQuery.post('/cart/update.js', {updates: {794864053: 2, 794864233: 3}});

Но не уверен, как реализовать это с моей функцией плюс / минус.Есть идеи как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...