我在 Magento 中成功创建了一个即时添加到购物车的按钮。我已经使用表单和 Java 脚本完成了,即页面上显示的每个产品都有自己的表单,并且相应地在表单上创建了它的 JavaScript 函数。
所以,如果我在一页中显示 60 个产品,它会导致 60 个表单和 60 个 js 函数。无论如何,我可以在所有表单/产品中使用单个 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>