Hello creators ๐
2-10_Quiz_Ajax ์ฐ์ตํ๊ธฐ(2) (feat. ์ด๋ฏธ์ง, ํ ์คํธ ๋ฐ๊ฟ์น๊ธฐ, ajax, attr, text, api ์ฐ๊ฒฐ) ๋ณธ๋ฌธ
[WEB & AI] (feat. ์ทจ์ค)/ํ๋ก ํธ&๋ฐฑ์๋
2-10_Quiz_Ajax ์ฐ์ตํ๊ธฐ(2) (feat. ์ด๋ฏธ์ง, ํ ์คํธ ๋ฐ๊ฟ์น๊ธฐ, ajax, attr, text, api ์ฐ๊ฒฐ)
๋ถ์๋งค๋_HA 2023. 1. 28. 15:52728x90
๋ฐ์ํ
โ . ์ด๋ฒ ํ์ฐจ ํ์ต ๋ชฉํ (goal)
1. ๋ฐฐ์ฐ๊ณ ์ ํ๋ ๊ฒ
๋ฅดํ์ด ๋์
ํด๋ฆญํ๋ฉด -> ์ด๋ฏธ์ง & ํ ์คํธ ๋ณ๊ฒฝ๋๋ ๊ฒ- ํต์ฌ์ ๋ฉ์์ง๋ URL ์ ๋ฐ๊ฟ์น๊ธฐ ํด์ ๋ค๋ฅธ ์ด๋ฏธ์ง๊ฐ ๋์ค๊ฒ ํ๋ ๊ฒ! โญโญโญโญโญ
โ ก. ๊ธฐ๋ณธ ์ฝ๋ ๋ฐ api ํ์ธ
1. ajax code ํด์ฆ ํ๊ธฐ ์ด์ ์ ๊ณต ์ฝ๋
<!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;
}
div.question-box>div {
margin-top: 30px;
}
</style>
<script>
function q1() {
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์
๋ ฅํ์ธ์
}
</script>
</head>
<body>
<h1>JQuery+Ajax์ ์กฐํฉ์ ์ฐ์ตํ์!</h1>
<hr />
<div class="question-box">
<h2>3. ๋ฅดํ์ด API๋ฅผ ์ด์ฉํ๊ธฐ!</h2>
<p>์๋๋ฅผ ๋ฅดํ์ด ์ฌ์ง์ผ๋ก ๋ฐ๊ฟ์ฃผ์ธ์</p>
<p>์
๋ฐ์ดํธ ๋ฒํผ์ ๋๋ฅผ ๋๋ง๋ค ์ง์ ๋ค ์๋ก ์์ฌ์ ธ์ผ ํฉ๋๋ค.</p>
<button onclick="q1()">๋ฅดํ์ด ๋์</button>
<div>
<img id="img-rtan" width="300" src="http://spartacodingclub.shop/static/images/rtans/SpartaIcon11.png" />
<h1 id="text-rtan">๋๋ ใ
ใ
ใ
ํ๋ ๋ฅดํ์ด!</h1>
</div>
</div>
</body>
</html>
- ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ ๊ฒ ๋์ด
2. ๋ฅดํ์ด API ์ฃผ์
http://spartacodingclub.shop/sparta_api/rtan
- ์ด๋ ๊ฒ ๋์ด
โ ข. ํด๋ณด๊ธฐ
1. ์ด์ ๋จ๊ณ๋ ๋ค๋ฅธ ์ : '์ด๋ฒ ๊ณผ์ ์์ ์ฌ์ฉํ๋ ajax๋?'
- ์ด์ ์๋ ์ถ๊ฐํ๊ณ ์ ํ๋ html ์ ํ์ธํ์.
- ์๊ฐํด๋ณด๋ฉด, ๊ทธ ์ด์ ๋ ์ฌ์ฉํ๋ ajax ๊ฐ append ์๊ธฐ ๋๋ฌธ. ์ฆ, append ๋ ์์ html ์ ์ง์ง html ๋ก ๋ง๋ค์ด์ฃผ๊ธฐ ๋๋ฌธ์, ์ถ๊ฐํ๊ณ ์ ํ๋ html ์ ํ์ธํ๋๊ฒ ์๋ฏธ๊ฐ ์์์.
- ๊ทธ๋ฌ๋ฉด, ์ด๋ฒ ๊ณผ์ ์์ ์ฌ์ฉํ๋ ajax ๋? โญโญโญโญโญ
1) ajax ์ค ํ์ํ ํจ์ ์ฐพ๊ธฐ (์ฐพ์๋ค๊ณ ๊ฐ์ )
- ๊ตฌํํ๊ณ ์ถ์ ๊ธฐ์ ์ด ๋ญ๋ฐ?
- ํด๋ฆญํ๋ฉด -> ์ด๋ฏธ์ง๊ฐ ๋ฐ๋๊ณ ,
- ํด๋ฆญํ๋ฉด -> ํ ์คํธ๊ฐ ๋ฐ๋๋๊ฑธ ํ๊ณ ์ถ์.
- ์ฆ, ์ฌ๊ธฐ url ์ด๋, ํ ์คํธ๋ฅผ ๋ฐ๊พธ๊ณ ์ถ์.
- ๐ฅ ์์ง ์ด๊ฒ ์ด๋ป๊ฒ ์๋ํ๋๊ฑด์ง ๋ชฐ๋ผ์, ๋ญ๋ผ๊ณ ๊ฒ์ํด์ผ ํ ์ง๋ ๋ชจ๋ฅด๊ฒ ์. ์ด ๊ธฐ๋ฅ์ ์ข ์๋ฉด, ajax ํด๋น ๊ธฐ์ ์ด๋ ๊ฒ ๊ฒ์ํ ์ ์์ ๊ฒ ๊ฐ์.
- ajax ์์ ํ ์ ์๋ ๊ฒ๋ค์ ์๊ณ , ๊ฒ์ํ ์ ์๊ฒ ํ๋๊ฒ ์ค์ํ๊ฒ ๋ค โญโญโญ
- ์ฐ์ ์ ์ฒ์ ๋ฐฐ์ฐ๋๊น, ํ์ํ ajax ๊ธฐ์ ์ ๋ด๊ฐ ์ฐพ์๋ค! ๊ณ ๊ฐ์ ํ๊ณ ! ์งํ
2) attr
, text
์ฌ์ฉํด์, url ์ด๋ text ๋ฐ๊ฟ์น๊ธฐ
- ์ด๊ฑธ ์ฌ์ฉํ ์์
2. ajax ํ์ฉํด์, ์๋ฒ์์ ๋ฐ์์จ response ๋ฅผ console ์ ์ฐ์ด๋ณด๊ธฐ
#ajax_์๋ฒresponse_console์ฐ๊ธฐ_์์ ์ฝ๋
- ajax ์๋ฒresponse_console์ฐ๊ธฐ ์์ ์ฝ๋ โญโญโญ
<script>
function q1() {
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์
๋ ฅํ์ธ์
$.ajax({
type: "GET",
// api ์ฃผ์ โ
url: "http://spartacodingclub.shop/sparta_api/seoulbike",
data: {},
success: function (response) {
console.log(response['getStationList']['row'])
}
})
}
</script>
- ๊ฒฐ๊ณผ๋ฌผ
- ๋ฒํผ ํด๋ฆญ -> q1 ํจ์ ์คํ -> ์๋ฒ api ์ ๊ฐ์, (์ด๋ฏธ ์ฌ๋ ค์ ธ ์๋) ๋ฐ์ดํฐ๋ฅผ response ์ ๋ฐ์ -> ๋ฐ์์จ ๊ฑธ console ์ ๋ณด์ฌ์ค!
- ์ด step by step ์ด ํ๊บผ๋ฒ์ ์คํ์ด ๋จ. โญโญโญ
- ์ด๋ฏธ ํด๋น api ์ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ด ์๋ค๋ ๊ฒ ์ ์ ๋์ด ์์. โญโญโญ
3. ๋ฉ์์ง & URL ๋ฐ๊ฟ์น๊ธฐ
1) ์ฐธ์กฐ ์ฌํญ
2) ๋ฉ์์ง๋ url ์ด console ์ ์ ์ฐํ๋์๋์ง ํ์ธ โญโญโญ
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/rtan",
data: {},
success: function (response) {
let url = response['url']
let msg = response['msg']
console.log(msg, url)
}
})
- ์ด ๊ณผ์ ์ ์ถ์ํ ์์ผ๋ณด๋ฉด?
- ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ์์ ๋ด์์ ๋ -> ์ฐ์ด์ ํ์ธํด๋ณด๋ผ?
- ๊ฒฐ๊ณผ๋ฌผ
3) console ์์ ์ ๋์ค๋๊ฑธ -> attr
, text
ajax ํจ์ ํ์ฉํด์ ๋ฐ๊ฟ์น๊ธฐ ํ๊ธฐ
#ajax_attr_textํ์ฉ_๋ฐ๊ฟ์น๊ธฐ_์์ ์ฝ๋
- ์์ ์ฝ๋ ๐
function q1() {
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์
๋ ฅํ์ธ์
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/rtan",
data: {},
success: function (response) {
let url = response['url']
let msg = response['msg']
$('#img-rtan').attr('src', url)
$('#text-rtan').text(msg)
}
})
}
- ๊ฒฐ๊ณผ๋ฌผ
๐ญ What i learned
์์ ์ฝ๋
-> ์ฐธ์กฐ์ฝ๋
์ด๋ ๊ฒ ๊ด๋ฆฌ๋ฅผ ํด์ผ ํ๋?
728x90
๋ฐ์ํ
'[WEB & AI] (feat. ์ทจ์ค) > ํ๋ก ํธ&๋ฐฑ์๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments