首页 > 解决方案 > ajax更新网址的问题

问题描述

我正在为一个shopify网站开发一个通过ajax填充的抽屉车。此购物车中还有一个带有加号和减号按钮的数量字段。这是加号按钮的代码:

// This button will increment the value
$('.ajax-cart-form').on("click",'.qtyplus.qtyplus-2', function(){
    // 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);
    }
    var currentVal2 = parseInt($('input[id='+fieldName+']').val());
    var currentProd = $('input[id='+fieldName+']').attr('id');
    $.ajax({
  type: 'POST',
  url: '/cart/update.js',
  data: { updates: { currentProd : currentVal2 }},
  dataType: 'json',
  success: function() {
    $.ajax({
      type: 'GET',
      url: '/cart.js',
      async: false,
      cache: false,
      dataType: 'json',
      success: function() {
          $.getJSON(_config.shopifyAjaxCartURL, function(cart) {
            $('.drawer-subtotal').remove();
            $('.ajax-subtotal').css('display','none');
            $(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-subtotal2').append("<div class='drawer-subtotal'><h3>Subtotal <span class='money'>£"+ price2 +" GBP</span></h3></div>");
            });
              $('#item_count').text(currentVal2);
      });
    }
    });
  }
});
});

如您所见,我正在获取数量字段的值,以通过变量 currentVal2 更新 ajax 发布请求中的数量。这工作正常。我还通过输入字段的 id 获取产品 ID。我试过了

alert(currentProd);

这会正确输出 ID。但是,当我尝试像这样在更新函数中使用这个变量时

 data: { updates: { currentProd : currentVal2 }},

我收到未找到 update.js 的错误,因此我假设它没有正确提取产品 ID。

相反,如果我尝试

data: { updates: { 35450129542: currentVal2 }},

所以直接输入产品ID就可以了。

任何想法如何解决这一问题?

标签: javascriptajax

解决方案


推荐阅读