У меня есть диаграмма Highcharts, отображаемая в CRM, которая считывает данные из определенных элементов на странице. Но я сталкиваюсь с несколькими проблемами по мере того, как я прогрессирую, и я даже не уверен, что я делаю это оптимальным способом, на самом деле, я уверен, что нет.Highcharts не будет отображаться, если элемент в последовательных данных пуст
I have essentially recreated how this is setup in jsFiddle here.
Я автоматически импортировать данные в записи в CRM каждый месяц из другой системы. Эти данные хранятся в элементах на странице, которые в настоящее время скрыты от просмотра, только для предотвращения помех на экране.
JQuery, который следует в настоящее время используется для объявления переменных для хранения значений из элементов в HTML, которые, в конечном счете, используемые в функции Highcharts для точек данных, как:
var janConnected = $('#jan_connected').text();
var janBusy = $('#jan_busy').text();
var janNoanswer = $('#jan_noanswer').text();
var janAbandoned = $('#jan_abandoned').text();
и так далее для каждый для каждой категории за каждый месяц в году. Однако не все месяцы года произошли, поэтому в каждом элементе нет данных.
Диаграмма визуализируется с этим:
// display the chart
$(document).ready(function() {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'spline',
borderWidth: 1
},
title: {
text: 'Chart'
},
xAxis: {
categories: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
},
yAxis: {
title: {
text: 'Total Calls'
},
stackLabels: {
enabled: true,
style: {
fontWeight: 'bold',
color: 'white'
}
}
},
plotOptions: {
pie: {
allowPointSelect: true,
dataLabels: {
enabled: true
}
}
},
exporting: {
enabled: false
},
series: [{
name: 'Connected',
data: JSON.parse("[" + janConnected + "," + febConnected + /* "," + marConnected + "," + aprConnected + "," + mayConnected + /* "," + junConnected + "," + julConnected + "," + augConnected + "," + sepConnected + "," + octConnected + "," + novConnected + "," + decConnected + */"]")
}, {
name: 'Busy',
data: JSON.parse("[" + janBusy + "," + febBusy + /* "," + marBusy + "," + aprBusy + "," + mayBusy + /* "," + junBusy + "," + julBusy + "," + augBusy + "," + sepBusy + "," + octBusy + "," + novBusy + "," + decBusy + */"]")
}, {
name: 'No Answer',
data: JSON.parse("[" + janNoanswer + "," + febNoanswer + /* "," + marNoanswer + "," + aprNoanswer + "," + mayNoanswer + /* "," + junNoanswer + "," + julNoanswer + "," + augNoanswer + "," + sepNoanswer + "," + octNoanswer + "," + novNoanswer + "," + decNoanswer + */"]")
}, {
name: 'Abandoned',
data: JSON.parse ("[" + janAbandoned + "," + febAbandoned + /* "," + marAbandoned + "," + aprAbandoned + "," + mayAbandoned + /* "," + junAbandoned + "," + julAbandoned + "," + augAbandoned + "," + sepAbandoned + "," + octAbandoned + "," + novAbandoned + "," + decAbandoned + */"]")
},
]
});
});
Вы можете увидеть в серии данных для каждой категории выше, что я закомментирована последующие месяцы, потому что график не будет оказывать, если у меня есть другая месяце участки без ранения; Мне будет дано JSON.parse: unexpected character
, которое я предполагаю, это элементы, не содержащие в них данных. Вы можете увидеть, как это происходит, если вы просто удалите текст/цифры из div в связанном jsFiddle вверху.
Я понятия не имею, как я могу получить эту настройку, чтобы у меня были все мои элементы, готовые к работе, и просто отобразите диаграмму, даже если в элементе нет данных. Имеет ли это смысл?
Я действительно борюсь с этим. Я уверен, что с самого начала я его разработал. Думаю, мне просто нужно отобразить диаграмму, независимо от того, нет ли у меня элементов, которые я определил, в них нет текста.
Благодарим за помощь. Надеюсь, я достаточно объяснил!
Edit 1:
I've tried updating the fiddle here, но, похоже, есть две проблемы:
Во-первых, это не отображать любую из точек данных в настоящее время, хотя, если я делаю console.log(connectedArray)
я могу видеть все данных из элементов массива.
Во-вторых, похоже, что он составляет четыре категории за каждый месяц, а не одну категорию за каждый месяц, представляющую четыре точки данных за этот месяц. Есть идеи?
Спасибо @ Dave. Да, это будет работать как обходной путь. Выполнение этого пути приведет к тому, что все остальные месяцы года появятся на диаграмме следующим образом: http://jsfiddle.net/ATDFL/ Я надеялся, что смогу получить график, чтобы показывать только те месяцы, у которых есть данные , но, возможно, это невозможно, если не была записана другая функция для динамического обновления данных серии? –
Обновленный ответ, у вас нет времени, чтобы создать скрипку, но, надеюсь, дает вам достаточно для ее работы. – dave