如何使用ajax添加到购物车相关产品magento

时间:2015-11-14 20:08:52

标签: javascript php ajax magento

我正在尝试在相关产品中使用ajax添加到购物车,但我不知道如何获得每个相关产品的链接?

我想使用ajax,当我点击添加到购物车时,不会被重定向到购物车页面。对于主要产品,这是运作良好。但相关的是添加主要产品或添加相关产品,但将我重定向到购物车。

 <?php endif; ?>
                <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image">
                    <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(350); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"/>
                </a>

<button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>

我可以使用

吗?
productAddToCartForm.submit(this)

但是内部提交的内容是什么?

这是添加到购物车代码

<script type="text/javascript">
    //<![CDATA[
        var productAddToCartForm = new VarienForm('product_addtocart_form');
        productAddToCartForm.submit = function(button, url) {
            if (this.validator.validate()) {
                var form = this.form;
                var oldUrl = form.action;

                if (url) {
                   form.action = url;
                }
                var e = null;
                if (!url) {
                    url = jQuery('#product_addtocart_form').attr('action');
                }
                url = url.replace("checkout/cart","ajaxcart/index"); // New Code
                var data = jQuery('#product_addtocart_form').serialize();
                data += '&isAjax=1';
                jQuery('#loading-mask').show();
                try {
                    jQuery.ajax({
                        url : url,
                        dataType : 'json',
                        type : 'post',
                        data : data,
                        success : function(data) {
                            jQuery('#loading-mask').hide();
                            if(data.status == 'ERROR'){
                                alert(data.message);
                            }else{
                                if(jQuery('.top-links .right-links')){
                                    jQuery('.top-links .right-links').replaceWith(data.toplink);
                                }
                                jQuery('#after-loading-success-message').show();
                            }
                        }
                    });
                } catch (e) {
                }                
                this.form.action = oldUrl;
                if (e) {
                    throw e;
                }
            }
        }.bind(productAddToCartForm);
    //]]>
    </script>

1 个答案:

答案 0 :(得分:0)

您可以从产品表单序列化数据并通过AJAX请求将其发送到服务器( via Prototype | via jQuery | via plain JS)。