在JavaScript循环中增加php变量

时间:2019-05-16 06:29:27

标签: javascript php charts chart.js

我正在尝试使用chartJS创建图表显示,该图表的显示数量及其内容都是动态的。我被困在如何遍历javascript中创建图表的过程中如何遍历php中的结果集。我知道Javascript是在客户端处理的,而php是在服务器端处理的。我编写了这段代码,是为了让大家对我想做的事情有一个大致的了解。现在,该计数器没有增加,并且无论数组中的第一个数据如何,我最终都得到相同的图形。从某种意义上说,我需要某种方式来跟踪php中javascript中的var i,以访问结果集中的内容。

var charts = [];
    <?php $counter = 0; ?>

    for (var i = 0; i < <?php echo sizeOf($readingArray); ?>; i++) {
        var ctx = document.getElementById(i);
        charts[i] = new Chart(ctx, {
        type: 'line',
        data: {
            datasets: [{
            label: 'Actual Readings',
            data: <?php echo json_encode($readingArray[$counter][4], JSON_NUMERIC_CHECK); ?>,
        }, {
            label: 'Threshold',
            data: <?php echo json_encode($readingArray[$counter][5], JSON_NUMERIC_CHECK); ?>,
        }],
        labels: <?php echo json_encode($readingArray[$counter][3]);?>,

        },
        options: {
                zoom: {
                        enabled: true,
                        mode: 'x',
                },
                pan: {
                       enabled: true,
                       mode: 'x',
                },

        },
    });
    <?php $counter++; ?>
  }

1 个答案:

答案 0 :(得分:0)

您大声将php变量分配给js变量并使用它们。 像这样

var data = '<?php echo json_encode($readingArray); ?>';

然后将json字符串转换为对象

arrayOfObjects = JSON.parse(data)

然后迭代数据并打印图表

for (var key in arrayOfObjects) {
console.log(arrayOfObjects[key])
}