Я использую Canvasjs Charts для построения графиков из PHP / MySQL. Все работает, как и ожидалось, за исключением создания моего файла JSON.
Canvasjs требует, чтобы файл JSON выглядел следующим образом:
callback({
"dps":
[{"division":"Xaxis VALUE","units":Yaxis VALUE}]
})
Однако, при создании моего файла JSON это
[{"division":"Xaxis VALUE","units":Yaxis VALUE}]
Все, что я хочу знать, - это как добавить открывающий и закрывающий тег в файл sjon из моего скрипта.
Вот последняя часть моего кода, которая создает файл JSON:
$output_data= array();
while($row = mysqli_fetch_array($result))
{
$output_data[] = array(
'division' => $row["division"],
'units' => $row["units"]
);
}
return json_encode($output_data, JSON_NUMERIC_CHECK);
echo json_encode($output_data, JSON_NUMERIC_CHECK);
}
$file_name = 'myresult2'.'.json';
if(file_put_contents($file_name, get_data()))
{
echo $file_name. 'file created';
}
else
{
echo 'Error';
}
?>
Дополнительные данные:
Это код, который генерирует график.
<script>
var chart = null;
var dataPoints = [];
window.onload = function() {
chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
theme: "light",
title: {
text: "Graph Header"
},
axisY: {
title: "% Verified",
titleFontSize: 12,
labelFontSize: 12,
valueFormatString: "#.##%"
},
axisX: {
title: "Division",
titleFontSize: 12,
labelFontSize: 12
},
data: [{
type: "column",
yValueFormatString: "#.##%",
dataPoints: dataPoints
}]
});
$.getJSON("myresult.json?callback=?", callback);
}
function callback(data) {
for (var i = 0; i < data.dps.length; i++) {
dataPoints.push({
label: data.dps[i].division,
y: data.dps[i].units
});
}
chart.render();
}
</script>