gpt4 book ai didi

javascript - 使用 php 数组绘制图表标签和数据

转载 作者:行者123 更新时间:2023-12-03 05:24:46 24 4
gpt4 key购买 nike

当我将数组作为参数传递给图表时,它停止在网络上显示 页。

<?php
$f = fopen("C:\wamp64\www\dashb\CSV\salespermonthdollars.csv", "r");
$labels = array();
$data = array();
$loopCounter = 0;
while (($line = fgetcsv($f)) !== false) {
if($loopCounter == 0){
// this if is to skip the first row or the columns
} else {
array_push($labels,$line[0]);
array_push($data,$line[1]);
}
$loopCounter = $loopCounter + 1;
}
fclose($f);
?>

因此,上面我读取了从查询结果中保存的 csv 文件,并尝试将其绘制在图表上:

<canvas id="myChart2">
<script>
$array3 = [1,2,3,4,5,5,41];
$array4 = [1,2,3,4,5,5,41];
var ctx = document.getElementById('myChart2').getContext('2d');
var myBarChart = new Chart(ctx, {
type: 'bar',
data: {
labels: $array3, //when i change this to $labels doesn't work same for4
datasets: [{
label: 'label',
data: $array4,
backgroundColor: "rgba(100,255,51,0.4)"
}]
}
});
</script>
</canvas>

我主要是在图表上显示查询结果。我执行、保存到 csv 并读取
从那里。

欢迎任何改进该方法的建议,不知何故,我觉得它可以比这更容易完成。

最佳答案

因为$labels不是 Javascript,而是 PHP 变量。所以你需要做的就是在代码的 php 部分中对其进行解码:

...
fclose($f);
$labels = json_decode($label);

在 Javascript 部分:

var labels = JSON.parse("<?php echo $labels; ?>");

作为改进建议的一部分,you should not declare global variables 。那么你在这里做什么:

$array3 = [1,2,3,4,5,5,41]; 
$array4 = [1,2,3,4,5,5,41];

应该是:

var array3 = [1,2,3,4,5,5,41]; 
var array4 = [1,2,3,4,5,5,41];

我删除了$ - 美元来自他们的名字,因为it's common practice to declare jQuery wrapper variables而那些显然不是。另外,通过 $他们的名字的前缀,我只能猜测你想要做的是在你的 <script> 中声明 php 变量然后直接使用它们,但是这是不可能的,因为首先,你缺少<?php一部分,第二-它们只会通过声明它们而保存在内存中。

关于javascript - 使用 php 数组绘制图表标签和数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41199129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com