Напишите нам

Избранные товары

Избранные товары

Присваиваем переменный id для контейнера в маске вывода товара. Он присвоит уникальные айди к каждому товару и позволит в дальнейшем определять есть этот товар в избранном или нет.

 id="lf_c[+id+]" 

На кнопку добавления в избранное вешаем вызов функции, а также присваиваем ей класс sc_tov_favor

onClick="addToFav([+id+]);"

Создаем страницу "Избранное" и делаем в ней вызов функции. Можно через отдельный шаблон или маску.

<script>$(function(){showFav();});</script>
<div class="lf_favtov_c"></div>

Добавляем во внешний файл скриптов функцию

$(function(){
	/* Находим избранное и отмечаем */
	var fav = scsh_getFav(1);
	if(fav.length){
		var i2 = 0;
		for(var i in fav){
			var fb = $('#lf_c'+fav[i]+' .sc_tov_favor'); 
			if(fb.length){
				fb.addClass('active');
				i2++;
			};
		};
		$('.favor_num').text(fav.length);
	};
});

/* Добавляем товар в избранное */
addToFav = function(id,s){
	var a = false;
	if(localStorage){
		var col = 0;
		var arr2 = (s)?localStorage.tovSrv:localStorage.tovFav;
		if(arr2){
			arr = arr2.split(','); 
			var ps = $.inArray(''+id+'',arr);
			if(ps >= 0){
				arr.splice(ps,1);
				a = 2;
			}else{arr.push(id); a = 1;};
		}else{arr = []; arr.push(id); a = 1;}
		col = Object.keys(arr).length;
		if(s){localStorage.tovSrv = arr.join(',');}else{localStorage.tovFav = arr.join(',');};
		var fb = $('#lf_c'+id+' .sc_tov_favor'); 
		if(fb.length){fb.toggleClass('active');};
		$('.favor_num').text(col);
	};
	return a;
}
scsh_getFav = function(a,s){
	if(localStorage){
		var arr2 = (s)?localStorage.tovSrv:localStorage.tovFav;
		if(arr2){
			return (a)?arr2.split(','):arr2;
		}else{
			return false;
		}
	};
}

function showFav(){	
	var fav = scsh_getFav();
	if(fav){
		$.ajax({url:"index-ajax.php?snippet=parents", dataType:'json', type:"POST", async:false, data:{id:1,item:fav,var:'price',nocont:1,tpl:'shop_tov'}, success:function(msg){
			if(msg){
				$('.lf_favtov_c').html(msg);
				$('.lf_favtov_c .sc_tov_favor').addClass('active');
			};
		}});
	}else{$('.lf_favtov_c').html('Нет товаров в списке!');}
};

В функции showFav() в массиве data введите свои значения. Свою маску вывода (tpl), нужные для вывода поля

data:{id:1,item:fav,var:'price',tpl:'shop_tov'}

Для отображения количества товаров в избранном присвойте тэгу со счетчиком класс - favor_num