对象中的JavaScript变量

时间:2016-11-16 12:34:07

标签: javascript php chart.js

我从数据库中提取一些数据并将其转换为完美的数组。我需要将它们插入到一个对象中:

data: {
    labels: ["Red", "Remaining"],
    datasets: [{
        data: [90, 10], <-- here
        backgroundColor: [
            'rgba(255, 99, 132, 1)'
        ],
        borderWidth: 1
    }]

我得到的数据就是这样......

<?php
$sql = 'SELECT COUNT(*) category FROM users GROUP BY category';
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  while($row = mysqli_fetch_assoc($result)) {

      $categoriesTest[] =  $row["category"];

  }

}

?>

将其转换为JavaScript变量,如:

var dataString="<?php echo rtrim(implode(', ', $categoriesTest), ',');  ?>";

这是完整的代码,基本上它们将是chart.js图表​​的值。

<?php
$sql = 'SELECT COUNT(*) category FROM users GROUP BY category';
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  while($row = mysqli_fetch_assoc($result)) {

      $categoriesTest[] =  $row["category"];

  }

}

?>

<script>

var dataString="<?php echo rtrim(implode(', ', $categoriesTest), ',');  ?>";

document.write(dataString);

var ctx = document.getElementById("myChart");

var myChart = new Chart(ctx, {
    type: 'doughnut',
    animation:{
        animateScale:true
    },

    options: {
         legend: {
            display: false
         },
         tooltips: {
            enabled: false
         }
    },

    data: {
        labels: ["Red", "Remaining"],
        datasets: [{
            data: [90, 10],
            backgroundColor: [
                'rgba(255, 99, 132, 1)'
            ],
            borderWidth: 1
        }]
    }

});
</script>

**更新**

var dataString="<?php echo rtrim(implode($categoriesTest), ',');  ?>";

var dataObject = JSON.parse(dataString);

document.write(dataString);

var ctx = document.getElementById("myChart");

var myChart = new Chart(ctx, {
    type: 'doughnut',
    animation:{
        animateScale:true
    },

    options: {
         legend: {
            display: false
         },
         tooltips: {
            enabled: false
         }
    },

    data: {
        labels: ["Red", "Remaining"],
        datasets: [{
            data: dataObject.categories,
            backgroundColor: [
                'rgba(255, 99, 132, 1)'
            ],
            borderWidth: 1
        }]
    }

});

1 个答案:

答案 0 :(得分:1)

json_encode功能对此有利。 任何php数组都可以传输到json然后在js中回显。

var dataString="<?php echo json_encode($categoriesTest);  ?>";