我正在自定义OC中的产品页面(下面附带的图片)看起来不错,但是购物车的ajax是不行的,我无法将产品添加到购物车,我只是得到了通用错误,"选项"没有被选中。
代码:
<div class="widget">
<?php foreach ($options as $option) { ?>
<?php if ($option['type'] == 'radio') { ?>
<div id="option-<?php echo $option['product_option_id']; ?>" class="option">
<div class="title">
<h2><?php echo $option['name']; ?>:</h2>
</div>
<table >
<?php foreach ($option['option_value'] as $option_value) { ?>
<tr>
<td>
<label>
<input type="radio" name="option[<?php echo $option['option_id']; ?>]" value="<?php echo $option_value['option_value_id']; ?>" />
<span style="width:40%;"><?php echo $option_value['name']; ?></span>
<?php if($option_value['quantity'] == 0) { ?>
<span style="width:20%;">Out of stock</span>
<?php } else { ?>
<span style="width:20%;"><?php echo $option_value['quantity']; ?> remaining</span>
<?php } ?>
<?php if ($option_value['price']) { ?>
<span style="width:10%;"><?php echo $option_value['prefix']; ?> <?php echo $option_value['price']; ?></span>
<?php } else { ?>
<span style="width:10%;"><?php echo $option_value['prefix']; ?> <?php echo $special; ?></span>
<?php } ?>
</label>
</td>
</tr>
<?php } ?>
</table>
</div>
<?php } ?>
<?php } ?>
<div class="cart">
<?php echo $text_qty; ?>
<input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
<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" />
<?php if ($minimum > 1) { ?>
<div class="minimum">
<?php echo $text_minimum; ?>
</div>
<?php } ?>
</div>
上面的Ajax代码是:
<script type="text/javascript"><!--
$('#notification').hide();
$('#button-cart').bind('click', function() {
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: $('input[type=\'text\'], input[type=\'hidden\'], input[type=radio]:checked'),
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').show();
$('#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');
}
}
});
});
//--></script>
图像:
https://dl.dropboxusercontent.com/u/26243182/oc-options.png
如果我运行以下jQuery脚本,它会告诉我单选按钮的内容
$('input[type="radio"]').click(function(){
if ($(this).is(':checked'))
{
alert($(this).val());
}
});
我可能遗漏了一些简单的东西,但这让我精神恍惚:)
感谢任何帮助
答案 0 :(得分:0)
呵呵,你得到的错误是如果ajax根本无法读取你指定的选项意味着没有读取值,那么你也应该将input[type=radio]
改为input[type=]\'radio\']
如果这也失败了尝试
'input[name=\'option[<?php echo $option['product_option_id']; ?>]\']:checked'
我认为其中一个对您来说是正确的,或者至少可以指导您,这是针对ajax代码的。