Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   json в цикле (https://javascript.ru/forum/misc/60459-json-v-cikle.html)

K_PECT 31.12.2015 19:08

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);
}
}

рони 31.12.2015 19:18

Цитата:

Сообщение от K_PECT
textfield1

это что? если строка поставьте кавычки

K_PECT 31.12.2015 19:21

Это 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;

рони 31.12.2015 19:31

K_PECT,
тогда это нужно добавить в скрипт

K_PECT 31.12.2015 19:36

вот для наглядности

рони 31.12.2015 19:48

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()

K_PECT 31.12.2015 19:59

рони, спасибо вам! Выручили! С новым годом! Всего вам!

K_PECT 01.01.2016 15:10

Подскажите, пожалуйста, как после этого цикла создать строку JSON.stringify(JSON);
Задача исключить пустые переменные.

рони 02.01.2016 12:09

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>

K_PECT 02.01.2016 12:39

рони,
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])
}
});


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


Часовой пояс GMT +3, время: 22:47.