본문 바로가기
스파르타 코딩 웹개발 종합반/2주차

2-9 Quiz_Ajax 연습하기_ OpenAPI이용 (서울따릉이 현황)

by 율✌️ 2022. 5. 14.
실시간 따릉이 현황을 테이블 형식으로 아래 표에 추가.

완성코드

<!doctype html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <title>JQuery 연습하고 가기!</title>
    <!-- JQuery를 import 합니다 -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <style type="text/css">
        div.question-box {
            margin: 10px 0 20px 0;
        }

        table {
            border: 1px solid;
            border-collapse: collapse;
        }

        td,
        th {
            padding: 10px;
            border: 1px solid;
        }
        .low{
            color: red;
        }
    </style>

    <script>
        function q1() {
            $('#names-q1').empty();
            $.ajax({
                type: "GET",
                url: "http://spartacodingclub.shop/sparta_api/seoulbike",
                data: {},
                success: function (response) {
                    let rows = response['getStationList']['row'];  //앞에 response  붙여야함
                    for (let i = 0; i < rows.length; i++) {
                        let bikesitu = rows[i];  //i번째 row다
                        let stn_name = bikesitu['stationName'];
                        let bfrrent = bikesitu['rackTotCnt'];
                        let aftrent = bikesitu['parkingBikeTotCnt'];

let temp_html='';

                         if(aftrent<5) {
                        temp_html = `<tr class='low'>
                        <td>${stn_name}</td>
                        <td>${bfrrent}</td>
                        <td>${aftrent}</td>
                        </tr>`;
                        }
                        else {temp_html = `<tr>
                        <td>${stn_name}</td>
                        <td>${bfrrent}</td>
                        <td>${aftrent}</td>
                        </tr>`;}

                            $('#names-q1').append(temp_html)
                    }
                 
                }
            })
        }
    </script>

</head>

<body>
    <h1>jQuery + Ajax의 조합을 연습하자!</h1>

    <hr />

    <div class="question-box">
        <h2>2. 서울시 OpenAPI(실시간 따릉기 현황)를 이용하기</h2>
        <p>모든 위치의 따릉이 현황을 보여주세요</p>
        <p>업데이트 버튼을 누를 때마다 지웠다 새로 씌여져야 합니다.</p>
        <button onclick="q1()">업데이트</button>
        <table>
            <thead>
                <tr>
                    <td>거치대 위치</td>
                    <td>거치대 수</td>
                    <td>현재 거치된 따릉이 수</td>
                </tr>
            </thead>
            <tbody id="names-q1">
                
            </tbody>
        </table>
    </div>
</body>

</html>

 


하면서 주의할 부분:

  •  처음에 row를 출력할때 response를 쓰지 않았음
    let rows = ['getStationList']['row'];(x)        let rows = response['getStationList']['row']; (o)
  • 반복문에서
       for (let i = 0; i < rows.length; i++) {
       let bikesitu = rows[i]; 
       let stn_name = bikesitu['stationName'];
    대신   

       for (let i = 0; i < rows.length; i++) {

       let stn_name = rows[i]['stationName'];

    이렇게 한번에 써주어도 됨