Javascript

차트2 (ajax)

오시리엔 2023. 11. 7. 09:34
<div style="width:500px">
    <canvas id="myChart"></canvas>
</div>


<script>
    $(function () {
        //시작하자마자 서버로 비동기 통신을 시도하여
        //차트 구현을 위한 데이터를 가져온다

        $.ajax({

            //url: "http://localhost:8080/rest/member/stat/count",
            // url: "http://localhost:8080/rest/member/stat/year",
            // url: "http://localhost:8080/rest/member/stat/month",
            url: "http://localhost:8080/rest/member/stat/date",
            //method:"get",
            //data 없음
            dataType: "json",//서버에서 받기를 기대하는 형태(아니면 에러처리)
            success: function (response) {
                //console.log(response);

                var labels = [], data = [];

                for (var i = 0; i < response.length; i++) {
                    labels.push(response[i].name);
                    data.push(response[i].cnt);
                }

                //labels와 data를 이용하여 차트를 생성하는 코드

                const ctx = document.getElementById('myChart');

                new Chart(ctx, {
                    type: 'bar',
                    data: {
                        labels: labels,
                        datasets: [{
                            label: '인원수',
                            data: data,
                            borderWidth: 1,
                            borderRadius: 10
                        }]
                    },
                    options: {
                        scales: {
                            y: {
                                beginAtZero: true
                            }
                        },
                        plugins: {
                            title: {
                                display: true,
                                text: '회원 등급별 인원수 현황',
                            }
                        }
                    }
                });
            },
        });
    });
</script>

'Javascript' 카테고리의 다른 글

써머노트(Summernote)  (0) 2023.11.09
이미지 슬라이더(Swiper)  (1) 2023.11.08
차트  (0) 2023.11.06
ajax 템플릿  (0) 2023.11.03
비동기 통신(ajax) 닉네임 체크  (0) 2023.11.02