#javascript #php #ajax #e-commerce #opencart
#javascript #php #ajax #электронная коммерция #opencart
Вопрос:
Я создал пользовательский конструктор продуктов для своего сайта и застрял на самом последнем шаге — добавлении товаров в корзину.
итак, в моем пользовательском файле шаблона этот код запускается при нажатии кнопки «Добавить в корзину»:
$('#button-cart').bind('click', function() {
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: $('I WANT TO PUT PRODUCT ID HERE, BUT DOESNT WORK'),
dataType: 'json',
success: function(json) {
}
});
У меня есть идентификатор продукта, сохраненный как переменная javascript, мне просто нужно получить его, чтобы добавить этот продукт в корзину. Любая помощь была бы отличной. Спасибо.
_____________ РЕДАКТИРОВАТЬ ______________
Это мой самый последний код, функция определенно запускается, когда я нажимаю кнопку «Добавить в корзину», locketID — это просто идентификатор продукта. Вызывается функция успеха, но ни один из операторов if (ошибка или успех) не выполняется, и продукт не добавляется в корзину.
Стоит ли упоминать, что это происходит в файле шаблона категории? Есть ли что-нибудь, что нужно включить, чего может не быть?
$('#button-cart').bind('click', function() {
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: locketID,
dataType: 'json',
success: function(json) {
console.log('success function called')
if (json['error']) {
console.log('ERROR');
}
if (json['success']) {
console.log('SUCCESS');
}
}
});
});
___________ПРАВИТЬ__________
Итак, я выбрал немного другой подход, это то, что у меня есть при вызове кнопки «Добавить в корзину», но она перенаправляет на страницу товара, а не добавляет товар в корзину, есть идеи?
$('#button-cart-custom').bind('click', function() {
var quantity = 1;
var product_id = 12196;
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: 'product_id=' product_id 'amp;quantity=' quantity,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information, .error').remove();
if (json['redirect']) {
location = json['redirect'];
}
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');
}
}
});
});
Комментарии:
1. Можете ли вы указать ту часть, где вы говорите «НО НЕ РАБОТАЕТ»?
2. Я хочу указать идентификатор продуктов, которые я хочу добавить в корзину, здесь
Ответ №1:
Это очень просто
var vars = new Array();
vars = {var1: var1_value,var2: var2_value}
теперь замените в своем коде
data: $('I WANT TO PUT PRODUCT ID HERE, BUT DOESNT WORK'),
с data: vars;
Комментарии:
1. Эй, спасибо за ваш ответ, я думал, что что-то подобное сработает, но я ничего не добился с этим. Я обновил приведенный выше вопрос своим последним кодом и объяснением. Еще раз спасибо
2. замените data: locketID на data:{‘id’:locketID} и используйте $_POST[‘id’] для получения этих данных
3. извините, куда я помещаю $_POST[‘id’]
4. его можно использовать на index.php страницу, чтобы вы могли получить этот идентификатор
5. Я ценю вашу помощь… просто не вижу, куда добавить $_POST[‘id’]
Ответ №2:
заменить data: locketID
на
data:{'id':locketID}
и
используйте
$_POST['id']
чтобы получить эти данные на сервере
Комментарии:
1. также удалите тип данных: ‘json’, в вашем коде в этом нет необходимости