Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.06.2020, 14:39
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 789

Массивы.Циклы.Графики.
Всем привет.Использую на сайте графики https://www.highcharts.com/demo/
До недавнего времени графиков было четыре,но теперь их количество хочет вырасти до 15. Хочу как то код сделать покомпактней. Сейчас имею следующее. Из php аяксом получаю данные в виде массивов.
$.ajax({
		url:url,
		 data:{grf: grf,ot:ot,to:to},
		dataType:'json',
		success : function (data) {	
		var res1 = [];
                ........
                for(var i=0; i<data.length; i++) {		
                res1 += data[i].to_fact_hip+',';
                .......................
                Grafics(res1,...,data.length);
}});

И в Grafics() я перебираю каждый массив и передаю данные объукту скрипта highcharts.js

function  Grafics(data1,data2,data3,data4,data5,num) {	
var chart1;	
var dte = data5.split(',');
/*это один график*/
var hip = data1.slice(0, -1);
hip = hip.split(',')
for(var i=0; i<hip.length; i++) {
    hip[i] = +hip[i];
}
/****************/
........
chart1 = new Highcharts.Chart({
....
     series: [{
        name: 'имя графика',
	 data: hip //точки графика
     },
....
}]
...
})
}

Теперь если графиков будет 15,получается та ещё простыня. Пробовал входные параметры для Grafics запаковать в массив ипотом в одном цикле это дело провернуть,но запутался. Помогите,если можно).
Ответить с цитированием
  #2 (permalink)  
Старый 20.06.2020, 08:43
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 789

С массивами разобрался вроде. Теперь в аяксе я сразу передаю data в Grafics().
$.ajax({
		url:'report.html',
		 data:{grf: grf,ot:ot,to:to},
		dataType:'json',
		success : function (data) {
		Grafics(data);
		}
                })

А вот в Grafics() не получается поместить цикл в класс.
function  Grafics(res) {
var chart1;
    chart1 = new Highcharts.Chart({
     chart: {
        renderTo: 'chart_1',
        type: 'line',
        height: 250,
     },
.......
     series: [
     function(res){
    for(i=0;i<res.length;i++){
          for (var prop in res[i]) {
              {       
          name: prop,
	  data: res[i][prop]
          },
          }
}
return;
    }
    ]
})
}

Пишет,что Grafics не определена.
Ответить с цитированием
  #3 (permalink)  
Старый 20.06.2020, 08:54
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 789

Одну ошибку нашёл. Мне нужно последнию запятую из цикла исключить.
Тут
{       
          name: prop,
	  data: res[i][prop]
          },

Не подскажите как?
Ответить с цитированием
Ответ



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

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