2013-07-06 34 views
0

我已經在Magento中成功創建了即時添加到購物車按鈕。我已經使用Forms和Java腳本完成了這個工作,也就是說,頁面上顯示的每個產品都有自己的表單,並且相應地在窗體上創建了其贏得的JavaScript函數。使用Ajax方法爲magento中的所有產品創建單個JS函數

所以,如果我在一個頁面中顯示60個產品,它會導致60個60和60個功能。無論如何,我可以在所有表​​單/產品中使用單個JS嗎? ...我嘗試過,並且無處不在,但無法獲得解決方案。

這裏是形式與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> 

回答

0

當你不想火60名的請求,也沒有檢出車控制器動作,它能夠添加更多比一種產品,你可以不得不在一個擴展爲Mage_Checkout_CartController的類中編寫自己的addMultipleAction。

有一個博客條目我通過2秒的谷歌搜索似乎做的正是這個發現:

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

+0

非常感謝萊斯的答覆,但你給的鏈接是添加多立即生產。我正在尋找的是編寫一個單獨的JS函數,所有60個ADD to CART按鈕都可以使用。現在我有60種不同的JS功能 - 每個按鈕都有自己的JS功能。我的目標是改進守則。請讓我知道,如果我錯過了什麼 – Nithin

相關問題