Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.12.2015, 19:08
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

json в цикле
Ребят, я нуб! Подскажите нубу, почему не работает!
function send() {

var ARTKL01 = '1';
var ARTKL02 = '';
var ARTKL03 = '';
var ARTKL04 = '';
var ARTKL05 = '';

var JSON = {
  "pole1": textfield1,
  "pole2": textfield2,
  "pole3": textfield3,
  "pole4": textfield4,
  "pole5": textfield5,
  "pole6": textfield6,
  "pole7": textfield7,
  "pole8": textfield8,
  "zakaz": [
        {
            "artikul":ARTKL01,
			"kolichestvo":kolichestvo01,
        },
		{
            "artikul":ARTKL02,
			"kolichestvo":kolichestvo02,
        },
		{
            "artikul":ARTKL03,
			"kolichestvo":kolichestvo03,
        },
		{
            "artikul":ARTKL04,
			"kolichestvo":kolichestvo04,
        },
		{
            "artikul":ARTKL05,
			"kolichestvo":kolichestvo05
        }
]
}

for (i in JSON.zakaz) {
	if (JSON.zakaz[i].artikul != '') {
    output+="<li>" + JSON.zakaz[i].artikul + "" + JSON.zakaz[i].kolichestvo + "</li>";
	alert (output);
}
}

Последний раз редактировалось K_PECT, 31.12.2015 в 19:13.
Ответить с цитированием
  #2 (permalink)  
Старый 31.12.2015, 19:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

Сообщение от K_PECT
textfield1
это что? если строка поставьте кавычки

Последний раз редактировалось рони, 31.12.2015 в 19:21.
Ответить с цитированием
  #3 (permalink)  
Старый 31.12.2015, 19:21
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

Это inputы:
textfield1 = document.getElementById('textfield1').value;
textfield2 = document.getElementById('textfield2').value;
textfield3 = document.getElementById('textfield3').value;
textfield4 = document.getElementById('textfield4').value;
textfield5 = document.getElementById('textfield5').value;
textfield6 = document.getElementById('textfield6').value; 
textfield7 = document.getElementById('textfield7').value; 
textfield8 = document.getElementById('textfield8').value;
Ответить с цитированием
  #4 (permalink)  
Старый 31.12.2015, 19:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

K_PECT,
тогда это нужно добавить в скрипт
Ответить с цитированием
  #5 (permalink)  
Старый 31.12.2015, 19:36
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

вот для наглядности
Ответить с цитированием
  #6 (permalink)  
Старый 31.12.2015, 19:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

K_PECT,
function send() {

var ARTKL01 = '1';
var ARTKL02 = '';
var ARTKL03 = '';
var ARTKL04 = '';
var ARTKL05 = '';

var kolichestvo01 = '1';
var kolichestvo02 = '';
var kolichestvo03 = '';
var kolichestvo04 = '';
var kolichestvo05 = '';

var textfield1 = '1';
var textfield2 = '';
var textfield3 = '';
var textfield4 = '';
var textfield5 = '';

var JSON = {
  "pole1": textfield1,
  "pole2": textfield2,
  "pole3": textfield3,
  "pole4": textfield4,
  "pole5": textfield5,
  "zakaz": [
        {
            "artikul":ARTKL01,
			"kolichestvo":kolichestvo01,
        },
		{
            "artikul":ARTKL02,
			"kolichestvo":kolichestvo02,
        },
		{
            "artikul":ARTKL03,
			"kolichestvo":kolichestvo03,
        },
		{
            "artikul":ARTKL04,
			"kolichestvo":kolichestvo04,
        },
		{
            "artikul":ARTKL05,
			"kolichestvo":kolichestvo05
        }
]
}
var output = '';
for (i in JSON.zakaz) {
	if (JSON.zakaz[i].artikul != '') {
    output+="<li>" + JSON.zakaz[i].artikul + "" + JSON.zakaz[i].kolichestvo + "</li>";
	alert (output);
}
}}

send()
Ответить с цитированием
  #7 (permalink)  
Старый 31.12.2015, 19:59
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

рони, спасибо вам! Выручили! С новым годом! Всего вам!
Ответить с цитированием
  #8 (permalink)  
Старый 01.01.2016, 15:10
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

Подскажите, пожалуйста, как после этого цикла создать строку JSON.stringify(JSON);
Задача исключить пустые переменные.
Ответить с цитированием
  #9 (permalink)  
Старый 02.01.2016, 12:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

K_PECT,
придумывайте переменным оригинальные имена ... да и в целом алгоритм стоит ещё раз продумать ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<script>
function send() {

var ARTKL01 = '1';
var ARTKL02 = '';
var ARTKL03 = '';
var ARTKL04 = '';
var ARTKL05 = '';

var kolichestvo01 = '1';
var kolichestvo02 = '';
var kolichestvo03 = '';
var kolichestvo04 = '';
var kolichestvo05 = '';

var textfield1 = '1';
var textfield2 = '';
var textfield3 = '';
var textfield4 = '';
var textfield5 = '';

var data = {
  "pole1": textfield1,
  "pole2": textfield2,
  "pole3": textfield3,
  "pole4": textfield4,
  "pole5": textfield5,
  "zakaz": [
        {
            "artikul":ARTKL01,
			"kolichestvo":kolichestvo01,
        },
		{
            "artikul":ARTKL02,
			"kolichestvo":kolichestvo02,
        },
		{
            "artikul":ARTKL03,
			"kolichestvo":kolichestvo03,
        },
		{
            "artikul":ARTKL04,
			"kolichestvo":kolichestvo04,
        },
		{
            "artikul":ARTKL05,
			"kolichestvo":kolichestvo05
        }
]
}
var output = '';
for (i in data.zakaz) {
	if (data.zakaz[i].artikul != '') {
    output+="<li>" + data.zakaz[i].artikul + "" + data.zakaz[i].kolichestvo + "</li>";
	alert (output);
}
}
var obj = {};
Object.keys(data).forEach(function (key) {
if(key == 'zakaz'){
  var arr =  data[key].filter(function(el) {
  return el.artikul && el.kolichestvo
});
if(arr.length) obj[key] = arr
}
else {
   data[key] &&  (obj[key] = data[key])
}

});

alert(JSON.stringify(obj))
}

send()
</script>
</body>

</html>
Ответить с цитированием
  #10 (permalink)  
Старый 02.01.2016, 12:39
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

рони,
var obj = {};
Object.keys(data).forEach(function (key) {
if(key == 'zakaz'){
  var arr =  data[key].filter(function(el) {
  return el.artikul && el.kolichestvo
});
if(arr.length) obj[key] = arr
}
else {
   data[key] &&  (obj[key] = data[key])
}
});


Сам бы такое никогда не написал))
Спасибо вам огромнейшее! Вы очень помогаете!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 22:26
Сортировка JSON данных в цикле Fareastaz jQuery 12 15.03.2013 20:20
Как получить Json в цикле? oleg_46 jQuery 5 21.05.2012 20:49
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10