具有相同变量的2个不同属性的条形图[Chart.Js]

时间:2018-12-04 08:41:26

标签: javascript php mysql chart.js

大家好,我试图显示一个条形图,该条形图显示名称为'Feedback'VS'Complain'的2个不同属性的计数,这两个属性是基于用户选择的。

我遵循了一些教程来创建一个Json文件,该文件与从mysql检索到的数据相同,然后显示在条形图上。这就是data.php,它根据查询接收数据

   <?php
//setting header to json
header('Content-Type: application/json');
$mysqli = mysqli_connect('localhost','root','','customercaremodule');


if(!$mysqli){
    die("Connection failed: " . $mysqli->error);
}

//query to get data from the table
$query1 = sprintf("SELECT FC_Category FROM fbcomplain where FC_Category ='Feedback'");
$Countsql1 = "SELECT count(FC_ID) AS total FROM fbcomplain WHERE FC_Category ='Feedback'";

//execute query
$result1 = $mysqli->query($query1);
$res1 = mysqli_query($mysqli,$Countsql1);
$value1 = mysqli_fetch_assoc($res1);
$feedbackrowcount = $value1['total'];
//loop through the returned data
$data1 = array();
foreach ($result1 as $row) {
    $data1[] = $row;
}

//free memory associated with result
$result1->close();


//query to get data from the table
$query2 = sprintf("SELECT FC_Category FROM fbcomplain where FC_Category ='Complain'");
$Countsql2 = "SELECT count(FC_ID) AS total FROM fbcomplain WHERE FC_Category ='Complain'";
//execute query
$result2 = $mysqli->query($query2);
$res2 = mysqli_query($mysqli,$Countsql2);
$value2 = mysqli_fetch_assoc($res2);
$complainrowcount = $value2['total'];


//loop through the returned data
$data2 = array();
foreach ($result2 as $row) {
    $data2[] = $row;
}

//free memory associated with result
$result2->close();


//close connection
$mysqli->close();

//now print the data
print json_encode($data1);
print json_encode($data2);
print json_encode($feedbackrowcount);
print json_encode($complainrowcount);
?>

然后这是我面临很多挑战的脚本功能。一般来说,我对Chart JS和PHP还是很陌生,如果有任何安全漏洞,请多多包涵。谢谢任何帮助

$(document).ready(function(){
    $.ajax({
        url: "http://localhost/customercare/data.php",
        method: "GET",
        success: function(data1) {
            console.log(data1);
            var feedback = [];
            var complain = [];

            for(var i in data1) {
                feedback.push(data1[i].$feedbackrowcount);
            }


            success: function(data2) {
                console.log(data2);
                var feedback = [];
                var complain = [];

                for(var i in data2) {
                    feedback.push(data2[i].$complainrowcount);
                }

            var chartdata = {

                datasets : [
                    {
                        label: 'Feedback',
                        backgroundColor: 'rgba(200, 200, 200, 0.75)',
                        borderColor: 'rgba(200, 200, 200, 0.75)',
                        hoverBackgroundColor: 'rgba(200, 200, 200, 1)',
                        hoverBorderColor: 'rgba(200, 200, 200, 1)',
                        data: feedback
                    }
                ]
            };

            var ctx = $("#mycanvas");

            var barGraph = new Chart(ctx, {
                type: 'bar',
                data: chartdata
            });
        },
        error: function(data1) {
            console.log(data1);
        }
    });
});

1 个答案:

答案 0 :(得分:0)

您可以尝试推送对象的反馈,例如:

    var bar_chart_obj_1 = {data: data1[i].$feedbackrowcount, label: "data1", id: 0};
feedback.push(bar_chart_obj_1);
    var bar_chart_obj_2 = {data: $data2[i].$complainrowcount, label: "data2", id: 1};
feedback.push(bar_chart_obj_2);