2017-04-10 1 views
0

Pour le moment, le JavaScript suivant met à jour les valeurs du panier sur click lorsque le bouton Ajouter au panier est cliqué.Mise à jour lors du chargement de la page

J'essaye de mettre à jour les valeurs sur pageload, quand la page est chargée ou régénérée.

Au moment où les valeurs sont rafraîchies uniquement sur click:

<script type="text/javascript"><!-- 
$('#button-cart').on('click', function() { 
    $.ajax({ 
     url: 'index.php?route=checkout/cart/add', 
     type: 'post', 
     data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'), 
     dataType: 'json', 
     beforeSend: function() { 
      $('#button-cart').button('loading'); 
     }, 
     complete: function() { 
      $('#button-cart').button('reset'); 
     }, 
     success: function(json) { 
      $('.alert, .text-danger').remove(); 
      $('.form-group').removeClass('has-error'); 

      if (json['success']) { 
       $('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>'); 

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

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

       $('#cart > ul').load('index.php?route=common/cart/info ul li'); 
      } 
     }, 
    }); 
}); 
//--></script> 

J'ai essayé beaucoup de choses et ai pas eu de chance, je l'ai essayé de charger les valeurs dans l'utilisation de ce (qui ne fait rien):

function readyFn(jQuery) { 
    $('#cart > button').load(function() { 

       $('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>'); 

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

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

       $('#cart > ul').load('index.php?route=common/cart/info ul li'); 


}); 

$(document).ready(readyFn); 
// or: 
$(window).on("load", readyFn); 
} 

me demandais si quelqu'un peut me aider comment charger le rafraîchissement/la page load de la même manière, il met à jour sur click.

Merci d'avance.

Répondre

0

Vous semblez avoir égaré votre accolade de fermeture sur readyFn, de sorte que le gestionnaire de document prêt était à l'intérieur de la fonction. En outre, vous n'avez rien à faire lorsque le bouton se charge ($('#cart > button').load) car vous attendez déjà que le document soit prêt avant d'appeler la fonction. Essayez quelque chose comme ceci:

$(function() { 
    $('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>'); 
    $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>'); 
    $('html, body').animate({ scrollTop: 0 }, 'slow'); 
    $('#cart > ul').load('index.php?route=common/cart/info ul li'); 
}); 

Notez que $(function(){}) est juste un shorthand pour $(document).ready(function(){}).

+0

Merci pour l'aide, je vais le noter pour l'avenir. Je n'ai pas résolu mon problème mais des informations utiles merci! – Beth