В вашем вызове ajax -
$.getJSON('ajax/calc.ajax.php', function(data) {
var series = []; // <---------------------- must be object not array
$.each(data, function(key, value) {
series.name = key;
series.data = value;
options.series.push(name); // <-------- it should be series not name
});
var chart = new Highcharts.Chart(options);
});
Итак, это было бы следующим образом -
$.getJSON('ajax/calc.ajax.php', function(data) {
$.each(data, function(key, value) {
var series = {}; // <-------------------- moved and changed to object
series.name = key;
series.data = value;
options.series.push(series); // <-------- pushing series object
});
var chart = new Highcharts.Chart(options);
});
Кроме того, учитывая JSON, который вы получаете -
{"nome": "TRANSFORMADOR 250VA 0-230-380V / 0,24V-0-48V", "modelo": "TRANSFORMADOR", "marca": "SEIT", "valor": "318.87 | 542.08 », "qtdade": "0" ??}
что вы делаете в $.each
-
series.data = value;
не имеет смысла.
series.data - это массив. Таким образом, это может выглядеть как или следующим образом -
[y1, y2, y3, ....] // array of numbers (which are y values)
или следующим образом -
[[x1, y1], [x2, y2], [x3, y3], ....] // array of arrays of pair of numbers (x and y values)
или следующим образом -
// array of objects which can have x and y values as properties
[{
name: 'Point 1',
color: '#00FF00',
y: 0
}, {
name: 'Point 2',
color: '#FF00FF',
y: 5
}]
Итак, убедитесь, что ваш PHP-код генерирует JSON, который соответствует массиву одного из вышеперечисленных, тогда series.data = value
внутри вашего $.each
будет работать.
Обновление:
Извините, я занимаюсь Java и никогда не занимался PHP, поэтому не могу вам сильно помочь с PHP Но можете ли вы попробовать следующее в качестве своего PHP, просто чтобы увидеть, отображается ли диаграмма?
header('Content-Type: application/json');
$return_data = array(
array(array(10, 20), array(20, 30), array(56, 30), array(50, 20)),
array(array(10, 0), array(20, 10), array(56, 100), array(50, 40))
);
echo json_encode($return_data);
Обновление: Чтобы отобразить круговую диаграмму, сохраняя тот же PHP.
$.getJSON('ajax/calc.ajax.php', function(data) {
var series = { // <-------------------- create just one series object
type: 'pie',
data: [] //data array for new series
};
$.each(data, function(key, value) {
series.data.push([key, value[0]]);
});
options.series.push(series); // <-------- pushing series object
var chart = new Highcharts.Chart(options);
});
Это должно нарисовать круговую диаграмму.