Автор Тема: Нужно сложение а получается склеивание  (Прочитано 2959 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Такая вот история.
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" , а подтыкаю в другие действия, то склеивает и всё тут.
В куках хранится что то вроде текущего счётчика и нужно каждый раз при выполнения скрипа прибавлять к имеющемуся некоторое значение.

Вот ведь чувствую что что-то элементарное, а куда рыть не знаю. Буду всем признателен за помощь.
С уважением, Дмитрий

Оффлайн virka

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 68
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Нужно сложение а получается склеивание
« Ответ #1 : 31 Мая 2005, 16:22:17 »
В учебных целях выведи typeof(t);
parseInt(), соответственно.

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Нужно сложение а получается склеивание
« Ответ #2 : 01 Июня 2005, 21:15:52 »
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:
« Последнее редактирование: 01 Июня 2005, 21:37:41 от Dim »
С уважением, Дмитрий

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28