从 PHP 创建 Chart.js 饼图数据
Create Chart.js pie chart data from PHP
我正在使用 chart.js 并尝试从 PHP 获取数据,但我遇到了问题。
我有以下代码:
$dataArray = $this->getBlankSupportArray("New");
$dataArray = $this->getBlankSupportArray("In Progress");
$dataArray = $this->getBlankSupportArray("Neutralised Parked");
$dataArray = $this->getBlankSupportArray("Neutralised Pending Shout");
$dataArray = $this->getBlankSupportArray("Neutralised Pending Shout");
$dataArray = $this->getBlankSupportArray("Ready To Close");
getBlankSupportArray 如下所示:
private function getBlankSupportArray($issueStatus)
{
$array[$issueStatus]["value"] = 0;
$array[$issueStatus]["color"] = "#ffffff";
$array[$issueStatus]["highlight"] = "#ffffff";
$array[$issueStatus]["label"] = $issueStatus;
return $array;
}
下面是我从 mysql 结果循环并添加到数组中的数据
while ($myrow = $result->fetch_array())
{
$issueStatus = $myrow["IssueStatus"];
$supportOverview[$issueStatus]["value"] = $myrow["COUNT(*)"];
$supportOverview[$issueStatus]["color"] = "#F7464A";
$supportOverview[$issueStatus]["highlight"] = "#FF5A5E";
$supportOverview[$issueStatus]["label"] = $issueStatus;
}
我就是json_encoding这个数组。
我认为 json_encoding 以不适合 chart.js 处理的格式返回数据。
chart.js 的文档说数据对象应采用以下格式
var data = [
{
value: 300,
color:"#F7464A",
highlight: "#FF5A5E",
label: "Red"
},
{
value: 50,
color: "#46BFBD",
highlight: "#5AD3D1",
label: "Green"
},
{
value: 100,
color: "#FDB45C",
highlight: "#FFC870",
label: "Yellow"
}
]
所以我的问题是,如何让 PHP 生成一个对象,该对象可以发送回 javascript 并解码以传递到 chart.js。
感谢您提供的任何帮助。
您需要将 JSON 中的值转换为数字,JSON 将它们编码为字符串。
parseInt()
在 Javascript 中应该可以解决问题。
我也对此感到困惑,让我忙了几个星期。
对于PHP变量
var pie = [{ value: parseInt(<?PHP VARIABLE?>), color: "#F7464A" }]
您好,我遇到了同样的问题,我找到了解决方案。这绝对没问题。
我的json数据
[{"week_name":"18","taskcount":"4"},{"week_name":"16","taskcount":"17"},{"week_name":"15","taskcount":"11"},{"week_name":"13","taskcount":"20"}]
所以,
$obj = json_decode($jsonData);
var PieData = [<?php for($i=0;$i<count($obj);$i++){ ?>
{
value: <?php echo $obj[$i]->taskcount;?>,
label: 'Week '+<?php echo $obj[$i]->week_name;?>
},
<?php } ?>
];
对于那些仍然想知道如何在 Chartjs javascript 中将整数 PHP 变量作为值传递的人来说,方法如下:
var PieData = [
{
value : parseInt(<?php echo $variable; ?>),
color : '#00c0ef',
highlight: '#00c0ef',
label : 'Blue'
},
我将它与 Adminlte 3 一起使用 - 希望对您有所帮助!
我正在使用 chart.js 并尝试从 PHP 获取数据,但我遇到了问题。
我有以下代码:
$dataArray = $this->getBlankSupportArray("New");
$dataArray = $this->getBlankSupportArray("In Progress");
$dataArray = $this->getBlankSupportArray("Neutralised Parked");
$dataArray = $this->getBlankSupportArray("Neutralised Pending Shout");
$dataArray = $this->getBlankSupportArray("Neutralised Pending Shout");
$dataArray = $this->getBlankSupportArray("Ready To Close");
getBlankSupportArray 如下所示:
private function getBlankSupportArray($issueStatus)
{
$array[$issueStatus]["value"] = 0;
$array[$issueStatus]["color"] = "#ffffff";
$array[$issueStatus]["highlight"] = "#ffffff";
$array[$issueStatus]["label"] = $issueStatus;
return $array;
}
下面是我从 mysql 结果循环并添加到数组中的数据
while ($myrow = $result->fetch_array())
{
$issueStatus = $myrow["IssueStatus"];
$supportOverview[$issueStatus]["value"] = $myrow["COUNT(*)"];
$supportOverview[$issueStatus]["color"] = "#F7464A";
$supportOverview[$issueStatus]["highlight"] = "#FF5A5E";
$supportOverview[$issueStatus]["label"] = $issueStatus;
}
我就是json_encoding这个数组。
我认为 json_encoding 以不适合 chart.js 处理的格式返回数据。
chart.js 的文档说数据对象应采用以下格式
var data = [
{
value: 300,
color:"#F7464A",
highlight: "#FF5A5E",
label: "Red"
},
{
value: 50,
color: "#46BFBD",
highlight: "#5AD3D1",
label: "Green"
},
{
value: 100,
color: "#FDB45C",
highlight: "#FFC870",
label: "Yellow"
}
]
所以我的问题是,如何让 PHP 生成一个对象,该对象可以发送回 javascript 并解码以传递到 chart.js。
感谢您提供的任何帮助。
您需要将 JSON 中的值转换为数字,JSON 将它们编码为字符串。
parseInt()
在 Javascript 中应该可以解决问题。
我也对此感到困惑,让我忙了几个星期。
对于PHP变量
var pie = [{ value: parseInt(<?PHP VARIABLE?>), color: "#F7464A" }]
您好,我遇到了同样的问题,我找到了解决方案。这绝对没问题。
我的json数据
[{"week_name":"18","taskcount":"4"},{"week_name":"16","taskcount":"17"},{"week_name":"15","taskcount":"11"},{"week_name":"13","taskcount":"20"}]
所以,
$obj = json_decode($jsonData);
var PieData = [<?php for($i=0;$i<count($obj);$i++){ ?>
{
value: <?php echo $obj[$i]->taskcount;?>,
label: 'Week '+<?php echo $obj[$i]->week_name;?>
},
<?php } ?>
];
对于那些仍然想知道如何在 Chartjs javascript 中将整数 PHP 变量作为值传递的人来说,方法如下:
var PieData = [
{
value : parseInt(<?php echo $variable; ?>),
color : '#00c0ef',
highlight: '#00c0ef',
label : 'Blue'
},
我将它与 Adminlte 3 一起使用 - 希望对您有所帮助!