duan0821 2015-04-10 12:01
浏览 78
已采纳

从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 12: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条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部