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条)

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)