I am working with chart.js and I am trying to get data from PHP but I'm having an issue.
I have the following code:
$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");
The getBlankSupportArray loos like the following:
private function getBlankSupportArray($issueStatus)
{
$array[$issueStatus]["value"] = 0;
$array[$issueStatus]["color"] = "#ffffff";
$array[$issueStatus]["highlight"] = "#ffffff";
$array[$issueStatus]["label"] = $issueStatus;
return $array;
}
Below is the data I am looping round from a mysql result and adding to the array
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;
}
I am then json_encoding this array.
I think the json_encoding is returning the data in a format not suitable chart.js to process.
The documentation for chart.js says that the data object should be in the following format
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"
}
]
So my question is, how do I get PHP to generate an object that can be sent back to javascript and decoded to be passed into chart.js.
Thans for any help you can provide.