我有一个数组chart.js
,想要使用该数组的值创建一个html5图表。为此,我使用$chart = '
<script>
var data = {
labels: ['."$array[0]".', '."$array[1]".', "..."],
datasets: [
{
label: "My Chart",
fillColor: "rgba(220,220,220,0.5)",
strokeColor: "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data: [65, 59, 80, 81, 56, 55, 40]
}
]
};
</script>';
print_r($chart);
我使用的代码看起来像这样(不幸的是,我需要通过PHP输出Javascript):
labels: ['.for ($i = 0, $i < count($array), $i++) {echo "$array[$i].','"}.'];
到目前为止工作正常,但数组会不时更新,图表也应如此。我想我会需要一个循环来做到这一点,但我不太确定如何在Javascript代码中运行循环。这不起作用:
position:absolute
答案 0 :(得分:0)
这不是一个完整的解决方案,但它可以帮助你。
使用PHP的模板功能让您的生活更轻松:
currentTime
答案 1 :(得分:0)
创建一个函数以返回打印的数组。实际上在你的代码中你可以删除回声。
请注意,这是一个快速黑客,不应该使用。你应该使用一些模板功能
function displayMe($ar){
$res = '';
for ($i = 0, $i < count($array)-1, $i++){
$res .= '"'.$array[i].'",';
}
return $res . '"'.$array[count($array)-1] . '"';
}
$chart = '
<script>
var data = {
labels: ['. displayMe($array).'],
datasets: [
{
label: "My Chart",
fillColor: "rgba(220,220,220,0.5)",
strokeColor: "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data: [65, 59, 80, 81, 56, 55, 40]
}
]
};
</script>';
print_r($chart);
答案 2 :(得分:0)
这应该可行,但我现在无法检查出来。 而不是&#34;展开&#34;您自己可以尝试这样的阵列:
$chart = '
<script>
var data = {
labels: '.json_encode($array).',
datasets: [
{
label: "My Chart",
fillColor: "rgba(220,220,220,0.5)",
strokeColor: "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data: [65, 59, 80, 81, 56, 55, 40]
}
]
};
</script>';
echo $chart;
基本上json_encode
将php数组编码为javascript对象,正如你所需要的那样!
此外,不需要print_r
(递归打印),只需使用echo
(或print
)