Ajax 기본 골격
$.ajax({
type: "GET",
url: "여기에URL을입력",
data: {},
success: function(response){
console.log(response)
}
})
따릉이 open API
http://spartacodingclub.shop/sparta_api/seoulbike
HTML
<!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;
}
</style>
<script>
function q1() {
// 여기에 코드를 입력하세요
}
</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">
<tr>
<td>102. 망원역 1번출구 앞</td>
<td>22</td>
<td>0</td>
</tr>
<tr>
<td>103. 망원역 2번출구 앞</td>
<td>16</td>
<td>0</td>
</tr>
<tr>
<td>104. 합정역 1번출구 앞</td>
<td>16</td>
<td>0</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
문제
1. 업데이트 클릭 시 거치대 위치, 거치대 수, 현재 거치된 따릉이 수를 보여주자.
2. 업데이트 클릭 시 기존의 정보는 지워준다.
3. 거치된 따릉이의 수가 5 미만인 곳은 빨갛게 표시해주자.
작성한 답안 코드
CSS
<style type="text/css">
* {
text-align: center;
}
div.question-box {
margin: 10px 0 20px 0;
}
table {
border: 1px solid;
border-collapse: collapse;
margin: 20px auto 0 auto;
}
td,
th {
padding: 10px;
border: 1px solid;
}
.urgent {
color: red;
font-weight: 700;
}
</style>
Script
function q1() {
$('#names-q1').empty();
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulbike",
data: {},
success: function (response) {
// console.log(response.getStationList.row)
let cnt_list = response.getStationList.row;
for (let i = 0; i < cnt_list.length; i += 1) {
let cnt_impormation = cnt_list[i];
let rackTotCnt = cnt_impormation['rackTotCnt']; // 거치대 수
let parkingBikeTotCnt = cnt_impormation['parkingBikeTotCnt']; // 현재 거치된 따릉이 수
let stationName = cnt_impormation['stationName']; // 거치대 위치
// console.log(rackTotCnt, parkingBikeTotCnt, stationName);
let temp_html = ``
// 거치된 바이크가 5대 미만이 곳은 빨갛게 표시하자
if (parkingBikeTotCnt < 5) {
temp_html = `<tr class="urgent">
<td>${stationName}</td>
<td>${rackTotCnt}</td>
<td>${parkingBikeTotCnt}</td>
</tr>`
} else {
temp_html = `<tr>
<td>${stationName}</td>
<td>${rackTotCnt}</td>
<td>${parkingBikeTotCnt}</td>
</tr>`
}
$("#names-q1").append(temp_html);
}
}
})
}
'항해99' 카테고리의 다른 글
[3주차] [#01] python 설치, 2주차 연습 겸 복습 (0) | 2022.10.14 |
---|---|
[2주차] [#05] Ajax 함께 연습하기(02) / 랜덤 르탄이 API (0) | 2022.10.04 |
[2주차] [#04] Ajax 함께 연습하기(01) / 미세먼지 API (0) | 2022.10.04 |
[2주차] [#03] Ajax 시작, 사용하기 (0) | 2022.10.04 |
[2주차] [#02] 서버 - 클라이언트 통신 이해하기 (0) | 2022.10.04 |