Forum Webscript.Ru
		Программирование => JavaScript & JScript => Тема начата: Dim от 31 Мая 2005, 11:18:09
		
			
			- 
				Такая вот история.
 JS выковыривает записанное значение из куки прибавляет единицу и записывает обратно в куку.
 Вот кусок считывания и записи:
 ------------------------------------------
 function Get_Cookie(Name) {
 var search = Name + "="
 var returnvalue = "";
 if (document.cookie.length > 0) {
 offset = document.cookie.indexOf(search)
 if (offset != -1) {                           // if cookie exists
 offset += search.length
 end = document.cookie.indexOf(";", offset); // set index of beginning of value
 if (end == -1)                              // set index of end of cookie value
 end = document.cookie.length;
 returnvalue=unescape(document.cookie.substring(offset, end))
 }
 }
 return returnvalue;
 }
 
 function SetCookie (name,value,expires,path,domain,secure) {
 document.cookie = name + "=" + escape (value) +
 ((expires) ? "; expires=" + expires.toGMTString() : "") +
 ((path) ? "; path=" + path : "") +
 ((domain) ? "; domain=" + domain : "") +
 ((secure) ? "; secure" : "");
 }
 ------------------------------------------
 
 Записывает в куку нормально и считываает из куки тоже всё пучком. Но вот когда произвожу с имеющимися значениями действия, то получается ерунда.
 Т.е. если код такой:
 var t = 3;
 var i = 4;
 var ti = t + i;
 document.write(\'ti = \'+ti+\'
 \');
 то всё путём и ввыводит сумму двух цифр
 
 А если такой:
 var t = Get_Cookie(\'fpp\');
 var i = 4;
 var ti = t + i;
 document.write(\'ti = \'+ti+\'
 \');
 где предварительно в куку загнал "3", то выводит не сумму чисел из куки и заданной, а делает их склейку
 и выводит "34" ! Что за ерунда никак понять не могу.
 Делал вывод значения куки для проверки
 document.write(t)
 Всё путём выводит "3" , а подтыкаю в другие действия, то склеивает и всё тут.
 В куках хранится что то вроде текущего счётчика и нужно каждый раз при выполнения скрипа прибавлять к имеющемуся некоторое значение.
 
 Вот ведь чувствую что что-то элементарное, а куда рыть не знаю. Буду всем признателен за помощь.
- 
				В учебных целях выведи typeof(t);
 parseInt(), соответственно.
- 
				to virka
 Сделал  и получил следующее:
 var t = Get_Cookie(\'fpp\');
 document.write(\'parseInt = \'+parseInt(t)+\'
 \'); // Выводит "parseInt = 5" если в куку записывали "5" и его от туда вытащили так: var t = Get_Cookie(\'fpp\');
 document.write(\'tapyt = \'+typeof(t)+\'
 \');         // Выводит "tapyt = number" при var t = 3; и выводит tapyt = string при var t = Get_Cookie(\'fpp\');
 
 Получается значение из куки не является числом и его нужно преобразовывать в число. Как это так? Записывал я туда число, а назад получаю стринг.
 Нужно всегда использовать parseInt(), так что ли? Ерунда какая-то. Не что-то тут не так:insane: