Всем привет. Четвертый день мучаюсь на элементарной (наверное) задачей. Переделываю на опенкарте, атрибуты товаров, в табличку.
Объясняю:
Изначально атрибуты выводятся селектом, в селекте опции товара (цвет: красный, черный...). После чего нажимаешь заказать и товар попадает в корзину, с определенной опцией.
У меня задача вывести атрибуты товаров в табличке см. рис.
![ad3f4335y3.png](//habrastorage.org/files/acf/ea8/b68/acfea8b688b943739914a4828caf997d.png)
селект естественно я заменил таблицей. На форумах нашел код кнопки. Тавра добавляется, но без опций.
Старый исходный код (только суть):
<select name="option[<?php echo $option['product_option_id']; ?>]">
<?php foreach ($option['option_value'] as $option_value) { ?>
<option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
Заменил на кнопку, в которой передаю параметры селекта:
<a onclick="buy_with_option(<?php echo $option['product_option_id']; ?>, <?php echo $option_value['product_option_value_id']; ?>); return false;" class="button"><span><?php echo $button_cart; ?></span></a>
Раньше год обрабатывала эта ф-ция:
$('#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');
}
}
});
});
Теперь кнопку обрабатывает похожая функция, но она принимает параметры:
function buy_with_option (opt_id, option) {
$('input[name=\'option['+opt_id+']\']').val(option);
$.ajax({
url: 'index.php?route=checkout/cart/update',
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']['warning']) {
$('#notification').html('<div class="warning" style="display: none;">' + json['error']['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
$('.warning').fadeIn('slow');
}
for (i in json['error']) {
$('#option-' + i).after('<span class="error">' + json['error'][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');
}
}
});
};
Проблема в том что значение селекта не передается. я так понимаю что проблема где-то в этой строке
$('input[name=\'option['+opt_id+']\']').val(option);
Кто разбирается в JS и JSON и jquery, помогите. Нужно передать данные на php. Но через эту функцию