I am pulling some data from my database and turning it into an array which is perfect. I need to insert those into an object:
data: {
labels: ["Red", "Remaining"],
datasets: [{
data: [90, 10], <-- here
backgroundColor: [
'rgba(255, 99, 132, 1)'
],
borderWidth: 1
}]
I am getting the data like so...
<?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"];
}
}
?>
And turning it into a JavaScript variable like:
var dataString="<?php echo rtrim(implode(', ', $categoriesTest), ','); ?>";
And here is the full code, bascially they will be the values for a chart.js chart.
<?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>
** Update **
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
}]
}
});