Доброго!
Я сейчас тренируюсь в написании модулей для Opencart и решил сделать для себя модуль добавления товара с определенной опцией в корзину прямо со страницы категорий.
Я добился того, что товар и его количество уходят в корзину, но не могу передать массив данных из поля опций (select, radio).
На странице товара, где кнопка добавления в корзину лишь одна, код по умолчанию реализован так:
$('#button-cart').bind('click', function() {
$.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) {
$('#cart_total').html(json['total']);
}
});
});
Так контроллеру передаются данные из всех полей в описании товара, где
.product-info input[type=\'text\'] - количество
.product-info input[type=\'hidden\'] - id товара
.product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea - поля опций (сейчас я рассматриваю только select и radio)
Есть еще другой код, который передает только количество и id товара:
function addToCart(product_id) {
var qty = $('input[name=quantity_'+product_id+']').val();
if(!qty){qty=1;}
$.ajax({
url: 'index.php?route=checkout/cart/update',
type: 'post',
data: 'product_id=' + product_id + '&quantity=' + qty,
dataType: 'json',
success: function(json) {
if (json['redirect']) {
location = json['redirect'];
}
$('#cart_total').html(json['total']);
}
});
}
А теперь сама проблема - на странице категорий есть множество товаров и одна опция к ним, которая реализована через select. Сам select на странице категорий выглядит так:
<select id="select-13001" name="option[93]" onchange="updatePrice(this.options[this.selectedIndex].title,'13001')">
<option label="150см, 1шт. (29.25 р.)" title="29.25 р." value="412">150см, 1шт.</option>
<option label="150см, пачка (10шт.) (271.00 р.)" title="271.00 р." value="418">150см, пачка (10шт.)</option>
</select>
На странице товара - аналогично, только нет id у select.
Кнопка на странице категорий:
<a onclick="addToCart('13001');" class="button">В Корзину</a>
Пожалуйста, подскажите как мне передать правильно данные из select контроллеру? И как правильно скорректировать функцию addToCart, чтобы передавались данные, так же как и в скрипте на странице товаров?
Буду рад любым идеям и подсказкам!
Спасибо!