2016-05-13 5 views
0

Ich benutze unten Skript zum Hinzufügen von Produkten zum Warenkorb und zu entfernen, wo im Display zählen, wie viele hinzugefügt und nach dem Entfernen, wie viele links ... in meinem Skript wenn ich zähle mich zu entfernen nicht angezeigt wird und nach der Seitenzahl erfrischend zeigt, wo ich Logik verpasst bin ...Produkt zum Warenkorb hinzufügen und entfernen Anzahl fehlt, während Elemente in opencart

// Cart add remove functions 
var cart = { 
    'add': function(product_id, quantity) { 
     $.ajax({ 
      url: 'index.php?route=checkout/cart/add', 
      type: 'post', 
      data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1), 
      dataType: 'json', 
      beforeSend: function() { 
       $('#cart > button').button('loading'); 
      }, 
      complete: function() { 
       $('#cart > button').button('reset'); 
      },   
      success: function(json) { 
       $('.alert, .text-danger').remove(); 

       if (json['redirect']) { 
        location = json['redirect']; 
       } 

       if (json['success']) { 
        $('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>'); 

        // Need to set timeout otherwise it wont update the total 
        setTimeout(function() { 
         $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>'); 
        }, 100); 

        $('html, body').animate({ scrollTop: 0 }, 'slow'); 

        $('#cart > ul').load('index.php?route=common/cart/info ul li'); 
       } 
      } 
     }); 
    }, 
    'update': function(key, quantity) { 
     $.ajax({ 
      url: 'index.php?route=checkout/cart/edit', 
      type: 'post', 
      data: 'key=' + key + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1), 
      dataType: 'json', 
      beforeSend: function() { 
       $('#cart > button').button('loading'); 
      }, 
      complete: function() { 
       $('#cart > button').button('reset'); 
      },   
      success: function(json) { 
       if(json['total']){ 
        var total= json['total']; 
       } 
       else{ 
        var total=""; 
       } 
       // Need to set timeout otherwise it wont update the total 
       setTimeout(function() { 
        $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>'); 
       }, 100); 

       if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') { 
        location = 'index.php?route=checkout/cart'; 
       } else { 
        $('#cart > ul').load('index.php?route=common/cart/info ul li'); 
       } 
      } 
     }); 
    }, 
    'remove': function(key) { 
     $.ajax({ 
      url: 'index.php?route=checkout/cart/remove', 
      type: 'post', 
      data: 'key=' + key, 
      dataType: 'json', 
      beforeSend: function() { 
       $('#cart > button').button('loading'); 
      }, 
      complete: function() { 
       $('#cart > button').button('reset'); 
      },   
      success: function(json) { 
       // Need to set timeout otherwise it wont update the total 
       if(json['total']){ 
        var total= json['total']; 
       } 
       else{ 
        var total=""; 
       } 
       setTimeout(function() { 
        $('#cart > button').html('<i class="fa fa-shopping-basket"></i>Cart<span id="cart-total">' + total + '</span>'); 
       }, 100); 

       if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') { 
        location = 'index.php?route=checkout/cart'; 
       } else { 
        $('#cart > ul').load('index.php?route=common/cart/info ul li'); 
       } 
      } 
     }); 
    } 
} 

Antwort

0

ich glaube, Sie müssen Ihren Code in „entfernen“ Abschnitt ändern: ändern unter:

setTimeout(function() { 
        $('#cart > button').html('<i class="fa fa-shopping-basket"></i>Cart<span id="cart-total">' + total + '</span>'); 
       }, 100); 

Nach unten:

setTimeout(function() { 
        $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>'); 
       }, 100);