duandian4501 2016-11-16 12:34
浏览 30
已采纳

对象中的JavaScript变量[重复]

This question already has an answer here:

I am pulling some data from my database and turning it into an array which is perfect. I need to insert those into an object:

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

I am getting the data like so...

<?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"];

  }

}

?>

And turning it into a JavaScript variable like:

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

And here is the full code, bascially they will be the values for a chart.js chart.

<?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>

** Update **

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
        }]
    }

});
</div>
  • 写回答

1条回答 默认 最新

  • douxian3828 2016-11-16 12:36
    关注

    json_encode function is good for that. Any php array you can transfer to json and then echo in the js.

    var dataString="<?php echo json_encode($categoriesTest);  ?>";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应