Задать вопрос
@Traney

КАК заменить значение SELECT OPTION ? (JS JSON)

Всем привет. Четвертый день мучаюсь на элементарной (наверное) задачей. Переделываю на опенкарте, атрибуты товаров, в табличку.
Объясняю:
Изначально атрибуты выводятся селектом, в селекте опции товара (цвет: красный, черный...). После чего нажимаешь заказать и товар попадает в корзину, с определенной опцией.

У меня задача вывести атрибуты товаров в табличке см. рис.
ad3f4335y3.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. Но через эту функцию
  • Вопрос задан
  • 3788 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы