php문 질문드립니다
본문
배열값으로 차트를 나타내려고 하는데 값이 나타나지 않아서 질문드립니다.
차트는 chart.js 오픈 소스를 이용하려고 하는데(https://www.chartjs.org/docs/latest/)
<?php
$a = array(1,2,3,17); // 차트에 나타날 값
foreach ($a as $v)
{
?>
<canvas id="myChart"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
<script>
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
datasets: [{
label: '# of Votes',
data: [<?php "$v, ";?>], // [1,2,3,17,]?
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
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
</script>
<?php } ?>
이렇게 공백이 뜹니다 ㅜㅜ
php echo로 테스트 해봤을때는 저 배열값이 잘 나오는거 같은데
16번째 줄에있는 data 값이 제가 생각한대로라면 주석대로 나와야하는데 저렇게 안되는거 같아요..
혹시 저 주석대로 나타낼수있는 php 구문이 있을까요??
!-->답변 2
<?php
"$v, "
;?>
<?php echo
"$v, "
;?>
출력이 빠졋네요.
그리고
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script> 이건 for문 밖으로 빼주는것이 좋습니다.
data: [<?php "$v, ";?>], // [1,2,3,17,]?
부분을
data: [<?php echo implode("," $a)?>],
로 바꾸시고 foreach문은 제거하세요
답변을 작성하시기 전에 로그인 해주세요.