php문 질문드립니다

php문 질문드립니다

QA

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 } ?>

1028775885_1559098567.4971.png

이렇게 공백이 뜹니다 ㅜㅜ

 

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문 밖으로 빼주는것이 좋습니다.

답변 감사합니다! 조언 해 주신대로 script는 밖으로 뺐습니다.

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

data: [<?php "$v, ";?>], // [1,2,3,17,]?
부분을 
data: [<?php echo implode("," $a)?>], 
로 바꾸시고 foreach문은 제거하세요

답변 감사합니다!

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 34
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT