duan0821 2015-04-10 20:01
浏览 77
已采纳

从PHP创建Chart.js饼图数据

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.

  • 写回答

3条回答 默认 最新

  • dsbj66959 2015-04-10 20:09
    关注

    You need to convert the values in the JSON to numbers, JSON encodes them as strings.

    parseInt() 
    

    in Javascript should do the trick.

    I got confused with this as well, kept me occupied for weeks.

    For PHP Var

    var pie = [{ value: parseInt(<?PHP VARIABLE?>), color: "#F7464A" }]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!