Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.10.2017, 11:30
Новичок на форуме
Отправить личное сообщение для Romann Посмотреть профиль Найти все сообщения от Romann
 
Регистрация: 10.09.2017
Сообщений: 3

Передача значения из формы в цикле → функции
Доброго времени суток!
Помогите решить задачу... Столкнулся с проблемой, у меня есть цикл который выводит данные из localstorage все хорошо работает, но решил я добавить кнопку добавления/вычитания количества товара в корзине.

Количество из формы передается нормально.
А id из кнопки в функцию постоянно передается один и тот же.
И тут я не пойму в чем проблема...

Вот мой костыльный код :

function showcart() {
var sum2 = 0;
var sum3 = 0;

var foo = localStorage.getItem("foo");
foo = foo ? JSON.parse(foo): {};
for (id in foo) {
 idprice = foo[id][2];
 idfoo = foo[id][3];
 idd = foo[id][0];
 
sum = 0;
for (i = 0; i < idfoo; i++) {
	
	sum += 1;
}
  
 document.write ("<div id='" + idd + "'>" + foo[id][1] + " в количестве : " + sum + " </div> "  );

 
 document.write ('<form action="" method="get" name="myform"> <input id="kol" name="kol" type="number" > <input type="hidden" id="idd2" value="' + idd + '"> <input type="button" value="Отправить" onclick="minus(idd)"> </form>')
 
 sum2 += idfoo;
 sum3 += idprice;
 document.write (idd);
}




	document.write (" <div id='coun'> Всего товаров в корзине : " + sum2 + " шт. На сумму: " + sum3 + " руб. </div>");
 }
 

 
 
 
   function minus(idd) {
  var foo = localStorage.getItem("foo");
  foo = foo ? JSON.parse(foo): {};
  var kol_1 = document.getElementById('kol').value;
   var idd1 = document.getElementById('idd2').value;
  koll = Number(kol_1);
   foo[idd][3] = (foo[idd][3] + koll);
     localStorage.setItem('foo', JSON.stringify(foo));
  
  alert (idd1);
  
   }
Ответить с цитированием
  #2 (permalink)  
Старый 25.10.2017, 14:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Romann
Количество из формы передается нормально.
value="' + idd + '...'

...
А id из кнопки в функцию постоянно передается один и тот же
onclick="minus(idd)"
Разницу улавливаешь?
Ответить с цитированием
  #3 (permalink)  
Старый 25.10.2017, 17:09
Новичок на форуме
Отправить личное сообщение для Romann Посмотреть профиль Найти все сообщения от Romann
 
Регистрация: 10.09.2017
Сообщений: 3

О боги. Вы гений!
Только все равно не пойму, чем ему не нравился idd...
Ответить с цитированием
  #4 (permalink)  
Старый 26.10.2017, 08:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Romann
Только все равно не пойму, чем ему не нравился idd...
На момент вызова у него некое последнее значение и все обработчики используют именно его. Т.е. то, что сейчас хранится в той переменной.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача значения в скрипт triest Общие вопросы Javascript 0 06.11.2016 16:23
Значения элементов формы типа Input по нажатию кнопки сохранить в JSON drno-reg Элементы интерфейса 1 22.07.2016 15:15
Перенос значения из одной функции в другую Vinhate Javascript под браузер 16 21.02.2016 13:00
Собрать значения всех полей формы vvsh Events/DOM/Window 3 09.11.2009 00:35
Возвращение значения из функции dba Events/DOM/Window 21 06.10.2009 01:33