Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.09.2011, 15:28
Аватар для klubnichkaaa
Интересующийся
Отправить личное сообщение для klubnichkaaa Посмотреть профиль Найти все сообщения от klubnichkaaa
 
Регистрация: 30.01.2011
Сообщений: 28

Обновление или перезапись cookie
Приветствую всех, есть такая проблема! Мне нужно для своего интернет магазина сделать удаление товара из корзины. Скрипт построен на Jquery, вопрос в том как удалить товар, ведь нужно удалить определённый товар и записать его в куки.
Сам скрипт:
<script type="text/javascript">
$(document).ready(function(){
		msg = new Array();
		var basket = '';
		var totalprice = 0;
		var iii='';
		var tt=':';
		var totalCountGoods = 0;
		if (!$.cookie("basket")) {$.cookie("basket", '', {path: "/"});}
		basket = decodeURI($.cookie("basket"));
		basketArray = basket.split(",");// Находим все товары
		for(var i=0; i<basketArray.length-1;i++) {
			goodsId = basketArray[i].split(":"); // Находим id товара, цену и количество
			totalCountGoods+=parseInt(goodsId[1]);
			iii+=tt+parseInt(goodsId[0]);
			totalprice+=parseInt(goodsId[1])*parseInt(goodsId[2]);
		}
		if (totalprice > 0) {
			$('#clearBasket').show();
			$('#checkOut').show();
			$('.hPb').show();
			$('.hPe').hide();
		}
		
		
		if (!totalprice) {totalprice = 0;}
		$('#totalPrice').text(totalprice);
		$("#cena").val(totalprice);
		$("#one").val(iii);
		$('#totalGoods').text(totalCountGoods);
});



$('a.addCart').click(function() {
   data = $(this).attr('id').split('-');
   addCart(data[1], data[2], 1);
   return false;
  });
  
  
  
  function addCart(p1, p2, p3){
    if (!p3 || p3==0) {p3=1;}
    msg.id = p1; 		  // АйДи
    msg.price = parseInt(p2); // Цена
    msg.count = parseInt(p3); // Количество
    var check = false;
    var cnt = false;
	var iii='';
	var tt=':';
    var totalCountGoods = 0;
    var totalprice = 0;
    var goodsId = 0;
    var basket = '';
    $('#clearBasket').show();
    $('#checkOut').show();
    $('.hPb').show();
    $('.hPe').hide();
    basket = decodeURI($.cookie("basket"));
    if (basket=='null') {basket = '';}
    basketArray = basket.split(",");
    for(var i=0; i<basketArray.length-1;i++) {
        goodsId = basketArray[i].split(":");
	if(goodsId[0]==msg.id)	// ищем, не покупали ли мы этот товар ранее
	{
            check = true;
	    cnt   = goodsId[1];
	    break;
	}
    }
    if(!check) {
        basket+= msg.id + ':' + msg.count + ':' + msg.price + ',';
    } else {
       alert("Уже есть в корзине!");
    }
    if(!check) {
        alert("Добавлено!");
        basketArray = basket.split(",");// Находим все товары
        for(var i=0; i<basketArray.length-1;i++) {
	    goodsId = basketArray[i].split(":"); // Находим id товара, цену и количество
	    totalCountGoods+=parseInt(goodsId[1]);
		iii+=tt+parseInt(goodsId[0]);
	    totalprice+=parseInt(goodsId[1])*parseInt(goodsId[2]);
	}
	$('#totalGoods').text(totalCountGoods);
	$("#one").val(iii);
	$('#totalPrice').text(totalprice);
	$("#cena").val(totalprice);
	$.cookie("totalPrice", totalprice, {path: "/"});
	$.cookie("basket", basket, {path: "/"});
    }
}



$('#clearBasket').click(function() {
			$.cookie("totalPrice", '', {path: "/"});
			$.cookie("basket", '', {path: "/"});
			$('#totalPrice').text('0');
			$('#totalGoods').text('0');
			$('.hPb').hide();
			$('.hPe').show();
			$(this).hide();
			$('#checkOut').hide();
			$.jGrowl("Корзина очищена!");
			return false;
		});

		
		
</script>


Это скрипт добавления товара. Я предполагаю что на его же основе можно сделать скрипт удаления. Я пробовал сделать но что могу сказать вспоминаю JS. но работа с cookie для меня вообще не понятна особенно когда это чужой скрипт, который я просто оптимизировал.
Может кто разбирается в этом и может помочь, опишет и расскажет как это сделать напишет пример и поможет оптимизировать скрипт, я тому пару рублёв закину на счёт за труд.
Вот демо сайт с компонентом http://test.eroteks.ru/component/pri...iew=tovar&id=1
Не обращайте внимания на беспорядок и цифры в корзине это я тестю id товара что бы удалить.
Вся суть в том что я не просто хочу написать скрипт а понять как и что работает.
Как я понял нужно извлечь массив, удалить элемент и записать заново.
Ответить с цитированием
  #2 (permalink)  
Старый 27.09.2011, 16:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,253

klubnichkaaa, сколько?
Ответить с цитированием
  #3 (permalink)  
Старый 28.09.2011, 15:51
Аватар для klubnichkaaa
Интересующийся
Отправить личное сообщение для klubnichkaaa Посмотреть профиль Найти все сообщения от klubnichkaaa
 
Регистрация: 30.01.2011
Сообщений: 28

Решил я свою проблему! Всё оказалось очень просто спасибо другу подсказал, я сократил этот же скрипт и назвал функции по другому проверил массив и перезаписал. Реально 5 маленьких строчек. осталось только обновить правильно страницу так как там скрытые поля которые из js передаются в php. Вот думаю как сделал нажатие кнопки из другой формы оно то работает, но из скрытое поле обновляется после нажатия кнопки.

<!--Передача данных и подсчёт данных-->
<script type="text/javascript">
$('div.addCookie').click(function() {
		data = $(this).attr('id').split('-');
		addCookie(data[1], data[2], 1);
		return false;
	});
  
	function addCookie(p1, p2, p3){
		if (!p3 || p3==0) {p3=1;}
		msg.id = p1; 		  // АйДи
		msg.price = parseInt(p2); // Цена
		msg.count = parseInt(p3); // Количество
		var check = false;
		var cnt = false;
		var iii='';
		var tt=':';
		var totalCountGoods = 0;
		var totalprice = 0;
		var goodsId = 0;
		var basket = '';
		$('#clearBasket').show();
		$('#checkOut').show();
		$('.hPb').show();
		$('.hPe').hide();
		basket = decodeURI($.cookie("basket"));
		if (basket=='null') {basket = '';}
		basketArray = basket.split(",");
		if(!check) {
			alert("Товар удалён");
			var tempArr = '';
			basketArray = basket.split(",");// Находим все товары
			for(var i=0; i<basketArray.length-1;i++) {
				goodsId = basketArray[i].split(":"); // Находим id товара, цену и количество
				if(goodsId[0] == p1){
					for(var j=0; j<basketArray.length-1;j++) {
						if(j != i)
							tempArr = tempArr + basketArray[j] + ',';
					}
					basket = tempArr;
					break; 
				}
			}
			$.cookie("totalPrice", totalprice, {path: "/"});
			$.cookie("basket", basket, {path: "/"});
		}

document.fname.submit();
	}	

</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хранение и удаление cookie в IE john-samilin Internet Explorer 4 07.07.2011 10:57
Выполнение скрипта раз в сутки по cookie Avel Mink Элементы интерфейса 16 29.04.2011 09:38
Как удолить cookie через javascript shtopor Javascript под браузер 5 22.03.2011 23:10
В зависимости от referrer выводить рекламу adsene или зорьки wlad2 Общие вопросы Javascript 12 19.12.2010 01:02
Динамический Select или Input (автозаполнение, добавление данных, обновление) kudinov Элементы интерфейса 0 21.09.2010 14:12