4

我试图让我使用的 Upsell 产品而不是 view.phtml 上的相关产品,以使用“添加到购物车”按钮前面的“数量”字段。我也在使用 AheadWorks Ajax AddToCart Pro 2.5 扩展。

现在,我正在使用此代码段添加没有数量字段的产品:

<form action="<?php echo $this->getAddToCartUrl($_link) ?>" method="post" id="view_addtocart_form_<?php echo $_link->getId(); ?>"><button onclick="setLocation('<?php echo $this->getAddToCartUrl($_link) ?>')" class="greenbutton" title="Add to Cart" type="button"><span><span>Add to Cart</span></span></button></form>

这很好用,但由于缺少数量字段,我无法更改数量。然后我尝试从我的 list.phtml 中使用它,它在类别视图中运行良好:

<script type="text/javascript">
                    function setQty(id, url) {
                        var qty = document.getElementById('qty_' + id).value;
                        document.getElementById('cart_button_' + id).innerHTML = '<button type="button" class="greenbutton-small" onclick="setLocation(\'' + url + 'qty/' + qty + '/\')"><span><span>Læg i kurv</span></span></button>';   
                    }
                </script>
                <label for="qty"><?php echo $this->__('Qty:') ?></label>
                <input type="text" name="qty_<?php echo $_product->getId(); ?>" id="qty_<?php echo $_product->getId(); ?>" maxlength="12" value="1" onkeyup="setQty(<?php echo $_product->getId(); ?>, '<?php echo $this->getAddToCartUrl($_product) ?>');" title="<?php echo $this->__('Qty') ?>" class="input-text qty" />
                <span id="cart_button_<?php echo $_product->getId(); ?>">
                <button type="button" class="greenbutton-small" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></span>    

现在,有趣的是,如果我尝试在 upsell.phtml 中使用它,这不起作用,但我不知道为什么?这与类别视图中来自 AW 的 Ajax Cart Pro 完美配合。

4

1 回答 1

4

根据以下代码upsell.phtml调用产品对象:$_link

<?php if($_link=$this->getIterableItem()): ?>

如果您尝试将代码包含在您的代码中,upsell.phtml则必须更改$_product$_link

<label for="qty"><?php echo $this->__('Qty:') ?></label>
            <input type="text" name="qty_<?php echo $_link->getId(); ?>" id="qty_<?php echo $_link->getId(); ?>" maxlength="12" value="1" onkeyup="setQty(<?php echo $_link->getId(); ?>, '<?php echo $this->getAddToCartUrl($_link) ?>');" title="<?php echo $this->__('Qty') ?>" class="input-text qty" />
            <span id="cart_button_<?php echo $_link->getId(); ?>">
            <button type="button" class="greenbutton-small" onclick="setLocation('<?php echo $this->getAddToCartUrl($_link) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></span>

它应该在以下行之后:

<?php if($_link=$this->getIterableItem()): ?>
于 2013-03-26T16:42:42.033 回答