Показать сообщение отдельно
  #1 (permalink)  
Старый 09.02.2012, 15:55
Новичок на форуме
Отправить личное сообщение для aLd_Hangmany Посмотреть профиль Найти все сообщения от aLd_Hangmany
 
Регистрация: 09.02.2012
Сообщений: 2

[РЕШЕНО] Передача данных из select массивом
Доброго!

Я сейчас тренируюсь в написании модулей для 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, чтобы передавались данные, так же как и в скрипте на странице товаров?

Буду рад любым идеям и подсказкам!

Спасибо!

Последний раз редактировалось aLd_Hangmany, 11.02.2012 в 10:29. Причина: Решение найдено
Ответить с цитированием