我只是在 foreach 循环中获得产品的价值。现在的逻辑是这样的,当我将获得产品数量时,它将被插入到表单的输入区域,并且当单击添加到购物车的按钮时,该产品数量将显示在结帐页面.. foreach 循环内的代码是这样的
![<div class="cart">
<table class="discount-prices">
<tr>
<?php foreach ($discounts as $discount) { ?>
<td class="discount-price">
<?php echo sprintf($text_discount, $discount\['quantity'\], $discount\['price'\]); ?>
</td>
</tr>
</table>
<div>
<?php echo $text_qty; ?>
<input type="text" name="quantity" size="2" value="<?php echo $discount\['quantity'\]; ?>" />
<input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" />
<input type="button" value="<?php echo $button_cart; ?>" id="button-cart" class="button" />
</div>
<?php } ?>]
为按钮工作的 jQuery 脚本是这样的
$('#button-cart').bind('click', function() {
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'),
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, information, .error').remove();
if (json['error']) {
if (json['error']['option']) {
for (i in json['error']['option']) {
$('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>');
}
}
}
if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
//$('.success').fadeIn('slow');
$('#cart-total').html(json['total']);
$('html, body').animate({ scrollTop: 0 }, 'slow');
setTimeout(opencartpage(),1000);
}
}
});
});
现在这里的问题是,当我单击第一个添加到购物车按钮时,它会进入结帐页面,但值是 5 而不是 3。您可以在图像(第二张图像)中看到我点击了第一个按钮,其值为“3”,但它采用“5”(最后一个值)。另一个问题是添加到购物车的第一个按钮适用于结帐页面,但另外两个添加到购物车的按钮根本不起作用。当单击其余两个按钮时,没有任何反应。那么有人可以帮助我并告诉我这里有什么问题吗?
更新
使用$('.button-cart')
而不是$('#button-cart')
使所有按钮处于活动状态意味着当单击该按钮时,它正在处理结帐页面,但它只采用最后一个值 5,这可以在第一张图像中看到。那么如何解决这个问题呢?