2013-10-04 2 views
0

Je ne suis pas familier avec AJAX/Javascript, donc j'ai du mal à faire quelque chose de simple.shopify ajax clear cart

J'essaie d'effacer le panier en utilisant Shopify's AJAX API avant que quelqu'un ajoute un article au panier.

Mon code ressemble actuellement à ceci:

<script> 
    function clearcart() 
    { 
    var my_button=$('input.addToCart'); 
my_button.on('click',function(){ 
    $.ajax({ 
     type: "POST", 
     url: '/cart/clear.js', 
     data: '', 
     success: success, 
     dataType: 'json', 
     success: function() { 
      return Shopify.clear(); 

     }, 
     error: function(XMLHttpRequest, textStatus) { 
      /* error code */ 
     } 
    }); 

    return false; 
}); 
    } 
</script> 
<input type="submit" name="add" value="Try Now" class="addToCart" onclick="clearcart();" "javascript:window.location='/cart' return false"/> 

Répondre

0

En fait Shopify.clear() L'appel contient AJAX pour vous. Donc, tout ce que vous avez vraiment besoin de faire est:

function clearCart() { 
    Shopify.clear(); 
} 

Dans votre formulaire, vous avez onclick = "ClearCart();" qui invoquera cette fonction pour vous.

Je vois que vous faites des choses avec votre window.location et si vous vouliez vous pouvez aussi le faire dans votre fonction ClearCart en tirant parti de la fonction de rappel qui peut être transmis dans l'appel de fonction Shopify.clear:

function clearCart() { 
    Shopify.clear(function(){ 
    window.location = "/cart"; 
    }); 
} 

J'espère que cela t'aides.

+0

Cela semble fonctionner pour Firefox, mais pas Safari ou Chrome? des idées? Est-ce parce que, ce faisant, il n'attend pas une réponse ajax? – control1110

+0

J'exécutais les commandes dans Chrome, donc la fonction devrait fonctionner. Alternativement, vous avez accès à jQuery je crois et vous pourriez peut-être attacher un écouteur d'événement au noeud DOM que vous voulez déclencher avec cette fonction (Ajouter au panier) – csaunders

1

Essayez de mettre à jour votre code à ceci:

<script> 
    function clearcart() { 
    var my_button=$('input.addToCart'); 
    my_button.on('click',function(){ 
     $.ajax({ 
     type: "POST", 
     url: '/cart/clear.js', 
     data: '', 
     dataType: 'json', 
     success: function() { 
      Shopify.clear(); 
     }, 
     error: function(XMLHttpRequest, textStatus) { 
      /* error code */ 
     } 
     }); 
     return false; 
    }); 
    } 
</script> 
<input type="submit" name="add" value="Try Now" class="addToCart" onclick="clearcart();" "javascript:window.location='/cart' return false"/>