繁体   English   中英

从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

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中使用了它-希望对您有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM