테스트 사이트 - 개발 중인 베타 버전입니다

php문 질문드립니다 채택완료

유성규 6년 전 조회 1,726

배열값으로 차트를 나타내려고 하는데 값이 나타나지 않아서 질문드립니다.

 

차트는 chart.js 오픈 소스를 이용하려고 하는데(https://www.chartjs.org/docs/latest/">https://www.chartjs.org/docs/latest/)

 

</p>

<pre>
<?php
$a = array(1,2,3,17); // 차트에 나타날 값
foreach ($a as $v)
{
?>
<canvas id="myChart"></canvas>
<script src="<a href="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>" target="_blank" rel="noopener noreferrer">https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script></a>
<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개

채택된 답변
+20 포인트
L
6년 전

"$v, ";?>

"$v, ";?>

 

출력이 빠졋네요.

그리고 

" target="_blank" rel="noopener noreferrer">https://cdn.jsdelivr.net/npm/chart.js@2.8.0"> 이건 for문 밖으로 빼주는것이 좋습니다.
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

유성규
6년 전
답변 감사합니다! 조언 해 주신대로 script는 밖으로 뺐습니다.

말씀해주신대로 해보았는데 차트 밖으로 echo를 했을때는 값이 제대로 나오는데 차트안 데이터 값에 넣으면 마지막 값만 출력이 되네요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

6년 전

data: [], // [1,2,3,17,]? 부분을  data: [],  로 바꾸시고 foreach문은 제거하세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

유성규
6년 전
답변 감사합니다!

foreach문을 다른걸로 바꾸게되면 적용할 때 너무 바꿀게 많아 구현하지 못할거같아서 연습해 보는중입니다 ㅠㅠ

혹시 foreach문을 사용하면서 값을 차례대로 나타낼 방법은 없을까요..?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

© 2025 SIRSOFT. All rights reserved.