javascript - 如何在数据chart.js中插入php

标签 javascript php chart.js

我正在尝试在 data: 中添加一个 php 变量。例子说 data: [<?php echo $dates ?>],这样就可以了,但是当我尝试这样做时,它立即给我一个错误,指出 < 是一个意外的标记。这在某种程度上是有道理的。我把它放在一个字符串 ["<?php echo $dates ?>"] 中,但后来我没有得到任何结果。

while ($stelling = mysqli_fetch_array($records1)){

    $Timer = date('M, Y', strtotime($stelling['Timer']));
    $Wheight = $stelling['Wheight'];
    $Title = $stelling['Title'];

    $Timers = '';
    $Wheights = '';
    $Titles = '';

    $Timers = $Timers.'"'.$Timer.'",';
    $Wheights = $Wheights.$Wheight.',';
    $Titles = $Titles.$Title.',';

    $Timers = trim($Timers, ",");
    $Wheights = trim($Wheights, ",");
    $Titles = trim($Titles, ",");


}
echo '<script src="script/graph.js"></script>'; 

脚本文件:

var ctx = document.getElementById('myChart').getContext('2d');

var myChart = new Chart(ctx, {
    type: 'line',
    data: {
        datasets: [{
            label: 'Time',
            data: ["<?php echo $Timers ?>"],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }

我希望图表显示存储在变量中的数据

最佳答案

补充前面的注释,PHP 数组与 JavaScript 数组不同。有很多方法可以做到这一点,一种是循环遍历 PHP 中的 $timers 数组,然后将其转换为相应的 JavaScript

假设时间包含array('label'=>'Today','data'=>55);

然后就可以使用foreach或者for构建对应的JavaScript数组

<script type='text/javascript'>
    let data=[];// this is a javascript array

    <?php 
    $timersCount=count($timers);
    for($i=0; $i<$timersCount i++){
    ?>
       data.push({
           data:<?php echo $timers[$i]['data']?>,
           label:<?php echo $timers[$i]['label']?>
        });
    <?php
    }?>
</script>

可能有错别字,我刚刚输入的,但你明白了。 我假设您正在 PHP View 文件中运行脚本。

关于javascript - 如何在数据chart.js中插入php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56441182/

相关文章:

javascript 将函数对象传递给 Web Worker - 错误 DataCloneError 无法克隆

javascript - 如何从 Adob​​e Business Catalyst 中的同一登录页面创建单独的安全区域?

PHPUnit代码覆盖生成导致内存耗尽

javascript - 最后一个值未显示在 charts.js-library 的条形图中

javascript - 谷歌地图 API 未加载

javascript - 调整 HTML 容器元素的大小未正确调整子元素的大小

非标准字符的 PHP 过滤器

php - 有限制的结果总数

reactjs - Chart.js - 增加 y 轴和第一个栏之间的空间

javascript - Chart.js 副标题不会显示