向购物车添加按钮加号/减号,并根据AJAX请求进行更新

时间:2019-05-10 12:29:14

标签: jquery ajax opencart-3

已添加到购物篮按钮,加号/减号可更改购物篮中的产品数量。但是我不明白如何正确连接Ajax以进行更新。

我在Ajax数据中尝试了不同的值。

<button  type="button" class="minus">-</button>
<input type="text" name="quantity[{{ product.cart_id }}]" value="{{ product.quantity }}" size="1" class="form-control cart-q" id="score"/>
<script>
$('.minus').click(function () {
     var $input = $(this).parent().find('#score');
     var count = parseInt($input.val()) - 1;
     count = count < 1 ? 1 : count;
     $input.val(count);
     $input.change();
     return false;
     setTimeout(function () {
      $.ajax({
        type: 'post',
        url: 'index.php?route=checkout/cart/edit',
        data: 'key=' + $input.name() + '&quantity=' + $input.val(),
        dataType: 'json',
        success: function () {
          $('#cart > ul').load('index.php?route=common/cart/info ul li');
        }
      });
    }, 100);
</script>

输入值已更改,但购物车值未更新,并且控制台中没有错误。 请帮忙。

2 个答案:

答案 0 :(得分:0)

购物车未更新,因为您在ajax调用之前有一个return语句。

删除了return语句,也无需超时。

$('.minus').click(function () {
     var $input = $(this).parent().find('#score');
     var count = parseInt($input.val()) - 1;
     count = count < 1 ? 1 : count;
     $input.val(count);
     $input.change();
      $.ajax({
        type: 'post',
        url: 'index.php?route=checkout/cart/edit',
        data: 'key=' + $input.name() + '&quantity=' + $input.val(),
        dataType: 'json',
        success: function () {
          $('#cart > ul').load('index.php?route=common/cart/info ul li');
        }
      });
    });

答案 1 :(得分:0)

以JSON格式发送数据。另外,请在调用AJAX之前删除return

<script>
  $('.minus').click(function(e) {
        e.preventDefault();
        var $input = $(this).parent().find('#score');
        var count = parseInt($input.val()) - 1;
        count = count < 1 ? 1 : count;
        $input.val(count);
        $input.change();
        setTimeout(function() {
          $.ajax({
            type: 'post',
            url: 'index.php?route=checkout/cart/edit',
            data: {
              key: $input.name(),
              quantity: $input.val()
            },
            dataType: 'json',
            success: function() {
              $('#cart > ul').load('index.php?route=common/cart/info ul li');
            }
          });
        }, 100);
</script>