上面我添加了产品列表页面的图像。
我的问题是当我在购物车中添加5件商品时,它正在正确添加。但是,当我将其增加到6并再次“将相同的项目添加到购物车”时,该项目的总数量在购物车中变为11。但我的要求是不要将(6 + 5 = 11)项添加到购物车,它应该变为6。
我的代码如下:
<?php if($_product->isSaleable()): ?>
<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="button" onmouseup="setLocation(\'' + url + 'qty/' + qty + '/\')"><span><span>Add to Cart</span></span></button>';
}
</script>
<label for="qty"><?php echo $this->__('Qty:') ?></label>
<a class="decrement_qty" href="javascript:void(0)">   -  </a>
<?php
$_quote = Mage::getSingleton('checkout/session')->getQuote();
$_item = $_quote ? $_quote->getItemByProduct($_product) : false;
$qty = $_item ? $_item->getQty() : 1;
$style = ($qty > 1) ? "background-color: #84c1e0;" : "background-color:white";
?>
<input type="text"
name="qty_<?php echo $_product->getId(); ?>"
id="qty_<?php echo $_product->getId(); ?>"
maxlength="12" value="<?php echo $qty;?>"
title="<?php echo $this->__('Qty') ?>" class="input-text qty" style=" <?php echo $style;?>"/>
<a class="increment_qty" href="javascript:void(0)">   +  </a>
<span id="cart_button_<?php echo $_product->getId(); ?>">
<button type="button"
class="button"
onmousedown="setQty(<?php echo $_product->getId(); ?>, '<?php echo $this->getAddToCartUrl($_product) ?>');">
<span><span><?php echo $this->__('Add to Cart') ?></span></span>
</button>
</span>
<?php else: ?>
<p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
<?php endif; ?>
jquery code for increment and dcrement the quantity is below.
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('.increment_qty').click(function() {
var oldVal = jQuery(this).parent().find("input").val();
if ( parseFloat(oldVal) >= 1 ) {
var newVal = parseFloat(oldVal) + 1;
jQuery(this).parent().find("input").val(newVal);
}
});
jQuery('.decrement_qty').click(function() {
var oldVal = jQuery(this).parent().find("input").val();
if ( parseFloat(oldVal) >= 2 ) {
var newVal = parseFloat(oldVal) - 1;
jQuery(this).parent().find("input").val(newVal);
}
});
});
</script>
注意:我也在使用AJAX添加到购物车扩展程序。