Регистрация
Вход через соцсети
Восстановление пароля

ajax добавление в сравнение

Новый топик
19.01.2016, 20:47
Ответить | Цитировать
Гость
Гость

Здравствуйте!
Подскажите, пожалуйста, как реализовать добавление товара в список сравнения без перезагрузки страницы?
В демо сайте нашёл такой вот код:
Код:
/*
* Добавление/удаление в сравнение и избранное
*/
footer_tabs = {
recent: {
tab_index: 0,
source: '.tpl-widget-netshop-viewed-by-user'
},
compare: {
tab_index: 1,
source: '.tpl-widget-netshop-compare',
additional_content: '.tpl-block-compare-button',
link: '.tpl-link-compare-add, .tpl-link-compare-remove',
popups: '#goodslist-compare-add, #goodslist-compare-remove',
actions: {
'.tpl-link-compare-add': {
links_to_show: '.tpl-link-compare-remove, .tpl-link-compare',
popup: '#goodslist-compare-add'
},
'.tpl-link-compare-remove': {
links_to_show: false,
popup: false
}
}
},
favorite: {
tab_index: 2,
source: '.tpl-widget-netshop-favorite',
link: '.tpl-link-favorite-add, .tpl-link-favorite-remove',
popups: '#goodslist-favorite-add, #goodslist-favorite-remove',
actions: {
'.tpl-link-favorite-add': {
links_to_show: '.tpl-link-favorite-remove, .tpl-link-favorite',
popup: '#goodslist-favorite-add'
},
'.tpl-link-favorite-remove': {
links_to_show: false,
popup: false
}
}
}
};

Но, судя по всему здесь с использованием виджета. А вот как добавить товар в список сравнения, показать модальное окно и изменить ссылку добавления в сравнение на ссылку удаления из сравнения не понятно.
Знаний в js маловато.
25.01.2016, 11:07
Ответить | Цитировать
Вячеслав
ruCreate
Вячеслав

Зарегистрирован:
2013-04-12
Сообщений: 87

Можно так.
Ссылка на добавление
Код:

<? if (!$is_in_compare_list) { ?>
<a href="<?= $netshop->goodslist_compare->get_add_action_url($item['Message_ID'], $item['Class_ID'], $_SERVER['REQUEST_URI'] . '#'); ?>" id='compare' class='vis'>в сравнения</a>
<? } else { ?>
<a href="/compare/" id='compare' >уже в сравнениях</a>
<? } ?>


Такой js
Код:

$('#compare.vis').click(function(e){
e.preventDefault();
$.ajax({
url: $(this).attr('href'),
success: function(result){
$('#compare').replaceWith($('#compare', result));
}
})
});


Этот код добавит без перезагрузки. Дальше работайте с переменными netcat
08.02.2016, 18:56
Ответить | Цитировать
Kit

Зарегистрирован:
2016-02-02
Сообщений: 3

тоже возникла такая необходимость.
Немного переделал для использования не с id, а с классами, т.к. нужно добавлять в сравнение на странице со списком товаров.
Код:
$('.add_compare').click(function(e){            
event.preventDefault();
$.ajax({
url: $(this).attr('href'),
success: function(result){
$('.add_compare').replaceWith($('.add_compare', result));
}
})
});

Теперь возник вопрос: как добавлять в сравнение товары в списке товаров, без перезагрузки страницы?
получается что после добавления товара нужно обновить состояние кнопки добавления в сравнение. А т.к. на странице несколько товаров (страница со списком товаров), и у всех товаров есть кнопка с таким классом и происходит то, что не должно происходить - у каждого товара выводится столько кнопок добавить в сравнение, сколько товаров на странице.
Как это можно поправить?
Спасибо!
198 196 2016-02-08 18:56:03 14407
Описание проекта