我正在使用Canvasjs图表从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>
答案 0 :(得分:0)
请尝试
// change this
$output_data[] = array(
// to this
$output_data['dps'][] = array(
答案 1 :(得分:0)
您需要做的是使用名为dps
的键将创建的数组封装在一个新数组中。
因此,在您的while
循环之后,您应该执行以下操作
$json_data['dps']=$output_data;
return json_encode($json_data, JSON_NUMERIC_CHECK);