我从数据库中提取一些数据并将其转换为完美的数组。我需要将它们插入到一个对象中:
data: {
labels: ["Red", "Remaining"],
datasets: [{
data: [90, 10], <-- here
backgroundColor: [
'rgba(255, 99, 132, 1)'
],
borderWidth: 1
}]
我得到的数据就是这样......
<?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"];
}
}
?>
将其转换为JavaScript变量,如:
var dataString="<?php echo rtrim(implode(', ', $categoriesTest), ','); ?>";
这是完整的代码,基本上它们将是chart.js图表的值。
<?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>
**更新**
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
}]
}
});
答案 0 :(得分:1)
json_encode
功能对此有利。
任何php数组都可以传输到json然后在js中回显。
var dataString="<?php echo json_encode($categoriesTest); ?>";