Я работаю над созданием динамических значений для круговой диаграммы, которая представляет собой график из chart.js Я создал переменную, которая содержит несколько значений объектов, которые должны быть передается в массиве для круговой диаграммы. Если я передаю переменную, ничего не появляется, но если я передаю переменные равные статическим значениям, круговая диаграмма начнет работать. Я искал различные методы, но не мог заставить его работать с моим кодом. Мой код выглядит следующим образом:Как создать массив объектов динамически в javascript для круговой диаграммы
/*PIE Chart*/
var elements = [];
var counter;
jQuery.ajax({
type: 'POST',
url: 'ajax-request.php',
data: {},
success: function(response){
//here data is means the out put from the php file it is not
$('#StudentID').val()
var jsonData = JSON.parse(response);
console.log(elements);
var pieData;
for (var i = 0; i < jsonData.length; i++) {
counter = jsonData[i];
var sale = roundFloat(counter.sales,2);
elements+= '{value:'+sale+',color: "#FDB45C",highlight: "#FFC870",label:"'+counter.sku+'"},';
}
var pieData = [elements];
var ctx = document.getElementById("pie-chartjs").getContext("2d");
window.myPie = new Chart(ctx).Pie(pieData);
}
});
У вас есть ошибка при использовании переменной? –
Подсказка: 'elements' - это строка, поэтому pieData - это массив одного элемента. Является строковым значением элементов. Я предполагаю, что функция «Pie» должна принимать массив объектов. – Ankur
Я получаю это значение в консоли для «элементов»: {значение: 9982154.22, цвет: «# FDB45C», выделить: «# FFC870», метка: «GL2010B»}, {значение: 1473462.15, цвет: «# FDB45C», выделите: «# FFC870», метка: «PL009»}, {значение: 1009087.15, цвет: «# FDB45C», выделить: «# FFC870», метка: «PL006»}, которая поступает динамически из запроса ajax. Когда я передаю полный ответ, скопированный с консоли, круговая диаграмма работает. Но это срабатывает, когда я передаю переменные «элементы». –