У меня есть drop down menu
с именем info
, и я хочу обновлять свой highchart каждый раз, когда пользователь выбирает значение через info menu
.
Вот код:
$('#info').on('change', function() {
add_info(this.value);
});
Метод add_info()
просто получает данные через ajax, и вот как я их обрабатываю после получения обратно response
:
if(chart=='stacked_chart'){
console.log(JSON.stringify(response));
var series = [{name:'Coached',data:[]},{name:'Non Coached',data:[],stack: 'yes'},{name:'Delta',data:[],stack: 'yes'}],
year, month, day;
for(var i=0; i<response.length;i++){
var d = response[i].date.split(",");
year = parseFloat(d[0]);
month = parseFloat(d[1])-1; //date.utc method starts month 0-11
day = parseFloat(d[2]);
var coached = +(parseFloat(response[i].coached).toFixed(3));
var non_coached = +(parseFloat (response[i].non_coached).toFixed(3));
var delta = +(parseFloat (response[i].delta).toFixed(3));
series[0].data.push([Date.UTC(year,month,day),coached]);
series[1].data.push([Date.UTC(year,month,day),non_coached]);
series[2].data.push([Date.UTC(year,month,day),delta]);
console.log(Date.UTC(year,month,day));
}
console.log(series);
if(series.length){
stacked_chart.userOptions.series = series;
var chart = new Highcharts.Chart(stacked_chart.userOptions);
console.log(chart.series[0].data[0].options);
console.log(chart.series[1].data[0].options);
console.log(chart.series[2].data[0].options);
}
}
Я вижу, что он возвращает новые данные, но не перерисовывает. Я просмотрел здесь, но не смог перерисовать график. Есть идеи, как сбрасывать диаграмму каждый раз, когда пользователь выбирает новое значение из раскрывающегося списка?