簡體   English   中英

為magento中的所有產品創建一個JS函數,以便使用Ajax方法添加到購物車

[英]Create a single JS function for all products in magento for add to cart using Ajax method

我已經在Magento中成功創建了一個即時添加到購物車按鈕。 我已經使用Forms和Java腳本完成了該操作,即頁面上顯示的每個產品都有其自己的表單,並且相應地在表單上創建了自己的JavaScript函數。

因此,如果我在一頁中顯示60個產品,它將導致60forms和60 js函數。 無論如何,我可以對所有表單/產品使用單個JS嗎? ...我嘗試過並四處查看,但無法找到解決方案。

這是Form和JS:

 <form action="<?php echo $this->getSubmitUrl($_product) ?>" method="post" id="product_addtocart_form<?php echo $this->htmlEscape($_product->getId())?>"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>>


   <button1  title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cartsd" onclick="productAddToCartForm<?php echo $this->htmlEscape($_product->getId())?>.submit(this)"><span><span><?php echo $buttonTitle ?></span></span></button>
    <?php echo $this->getChildHtml('', true, true) ?>
    </form>

JS:

 var productAddToCartForm<?php echo $this->htmlEscape($_product->getId())?> = new VarienForm('product_addtocart_form<?php echo $this->htmlEscape($_product->getId())?>');

     productAddToCartForm<?php echo $this->htmlEscape($_product->getId())?>.submit = function(button) {

         if (this.validator.validate()) {
             var form = this.form;
             var e = null;
             var oldLabel;

             try {
                 this.form.request({
                     parameters: { adeptaajax:'true' },
                     onSuccess: function(transport){
                         var json = transport.responseText.evalJSON();
                         var displayString = json.message;
                         if(json.success) {
                             jQuery("#topCartContent").load("page/ #element > *");
                             jQuery("#cartHeader1").load("page/ #element2 > *");
                         }
                         alert(displayString);
                     },
                     onFailure: function(transport){

                         alert("<?php echo $this->__('There has been a problem adding your product. Please try again later.'); ?>");
                     }
                 });
             } catch (e) {
             }
             if (e) {
                 throw e;
             }
         }
     }.bind(productAddToCartForm<?php echo $this->htmlEscape($_product->getId())?>);
 </script>

由於您不希望觸發60個請求,並且沒有可以添加多個產品的結帳購物車控制器操作,因此您可能必須在擴展Mage_Checkout_CartController的類中編寫自己的Mage_Checkout_CartController

我通過2秒鍾的Google搜索發現了一個博客條目,該條目似乎正是這樣:

http://www.danneh.org/2010/09/adding-multiple-products-to-the-cart-simultaneously-in-magento/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM