[コード初心者]第2週-スパルタコードクラブ
30010 ワード
jQueryとAjaxについて
HTMLを受け取った仮定の下で、Javascriptを使用してサーバを再要求する方法を学びます.
JQueryを使用してJavascriptを使用してHTMLを簡単に制御し、Ajaxを使用して再びサーバにデータを要求し、受信します.
Javascript復習
偶数を押すとき👏「あ、奇数を押すとき」🎅「どれだけ弾けるボタンを作ろう!
偶数/奇数の判断方法
let even = 4;
console.log(even % 2); // 2로 나눈 나머지가 0입니다.
let odd = 5;
console.log(odd % 2); // 2로 나눈 나머지가 1입니다.
onclick関数(完了)
<script>
let count = 1;
function hey() {
if (count % 2 == 0) {
alert('짝짝짝👏');
} else {
alert('홀홀홀🎅');
}
count += 1;
}
</script>
JQueryって何?
あらかじめ作成されたJavascriptコードをインポートすることを「インポート」と呼びます.
<head> 와 </head>
の間<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
入れたら終わり!JQueryの使い方
cssと同様にjQueryを書く場合も「指向」→操作が可能です.
例)特定の足場の値段→持ってきて!
例)特定のdiv→見えない!
cssはclassをセレクタとして使用します.
jQueryでは、id値でボタン/入力ボックス/div/...を指定します.背中を指す.
1.入力ボックスの値
```jsx
<div class="posting-box">
<div class="form-group">
<label for="exampleInputEmail1">아티클 URL</label>
<input id="post-url" type="email" class="form-control" aria-describedby="emailHelp"
placeholder="">
</div>
<div class="form-group">
<label for="exampleInputPassword1">간단 코멘트</label>
<input type="password" class="form-control" placeholder="">
</div>
<button type="submit" class="btn btn-primary">기사 저장</button>
</div>
```
クロム開発者ツールコンソールウィンドウで検索id値がpost-urlの場所を指し、val()を使用して値を取得します.
$('#post-url').val();
2.divの表示/非表示
```jsx
<div class="posting-box" id="post-box">
<div class="form-group">
<label for="exampleInputEmail1">아티클 URL</label>
<input id="post-url" type="email" class="form-control" aria-describedby="emailHelp"
placeholder="">
</div>
<div class="form-group">
<label for="exampleInputPassword1">간단 코멘트</label>
<input type="password" class="form-control" placeholder="">
</div>
<button type="submit" class="btn btn-primary">기사 저장</button>
</div>
```
クロム開発者ツールコンソールウィンドウで検索id値がpost-boxの場所を指定し、hide()として表示されないようにします.(=cssのdisplay値をnoneに変更)
$('#post-box').hide();
show()のように見せる.(=cssの表示値をblockに変更)$('#post-box').show();
3.cssの値を取得して表示します(displayプロパティの値を取得しようとします!)
$('#post-box').hide();
$('#post-box').css('display');
$('#post-box').show();
$('#post-box').css('display');
4.タグのテキストを入力
1)input boxの場合
$('#post-url').val('여기에 텍스트를 입력하면!');
2)置換ボタンのテキスト(例)指向したいボタンにid値を与える
<button id="btn-posting-box" type="button" class="btn btn-primary">포스팅 박스 열기</button>
$('#btn-posting-box').text('포스팅 박스 닫기');
タグにhtmlを入力
- <div> ~ </div> 내에,
동적으로 html을 넣고 싶을 땐? (예를 들어, 포스팅되면 → 카드 추가)
htmlを真ん中に挿入したいタグにid値を付けます.<div id="cards-box" class="card-columns">
<div class="card">
<img class="card-img-top" src="https://www.fodors.com/wp-content/uploads/2018/10/4_UltimateRome_PiazzaNavona-975x650.jpg" alt="Card image cap">
<div class="card-body">
<a href="https://naver.com/" class="card-title">여기 기사 제목이 들어가죠</a>
<p class="card-text">여기에 기사 내용이 들어가겠죠</p>
<p class="card-text comment">여기엔 코멘트가 들어갑니다</p>
</div>
</div>
</div>
1)ボタンの挿入を試みるlet temp_html = '<button>나는 추가될 버튼이다!</button>';
$('#cards-box').append(temp_html);
2)キーを押さずにカードを挿入してみる注意:入力はbacktick(
)으로 감싸야 합니다. 숫자 1번 키 왼쪽의 버튼을 누르면 backtick(
)で、単一引用符(')ではありません.backtickでは、文字の間にJavascript変数を挿入できます.
let link_url = 'https://naver.com/';
let title = '여기 기사 제목이 들어가죠';
let desc = '기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...';
let comment = '여기에 코멘트가 들어갑니다.';
let temp_html = `<div class="card">
<img class="card-img-top"
src="${img_url}"
alt="Card image cap">
<div class="card-body">
<a href="${link_url}" class="card-title">${title}</a>
<p class="card-text">${desc}</p>
<p class="card-text comment">${comment}</p>
</div>
</div>`;
$('#cards-box').append(temp_html);
Ajaxの起動
注意!Ajaxは、jQueryをインポートしたページでのみ実行できます.
つまり、http://google.com/と同じ画面で開発者ツールを開くと、jQueryがインポートされず、以下のエラーが発生します.
Uncaught TypeError: $.ajax is not a function
→ajaxの意味がない
マイクロダストOpenAPI
http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99
Ajaxベーススケルトン
$.ajax({
type: "GET",
url: "여기에URL을입력",
data: {},
success: function(response){
console.log(response)
}
})
Ajaxコード説明$.ajax({
type: "GET", // GET 방식으로 요청한다.
url: "http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99",
data: {}, // 요청하면서 함께 줄 데이터 (GET 요청시엔 비워두세요)
success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음
console.log(response) // 서버에서 준 결과를 이용해서 나머지 코드를 작성
}
})
$ajaxコード説明
- type: "GET" → GET 방식으로 요청한다.
- url: 요청할 url
- data: 요청하면서 함께 줄 데이터 (GET 요청시엔 비워두세요)
리마인드
GET 요청은, url뒤에 아래와 같이 붙여서 데이터를 가져갑니다.
http://naver.com?param=value¶m2=value2
POST 요청은, data : {} 에 넣어서 데이터를 가져갑니다.
data: { param: 'value', param2: 'value2' },
- success: 성공하면, response 값에 서버의 결과 값을 담아서 함수를 실행한다.
결과가 어떻게 response에 들어가나요? → 받아 들이셔야 합니다..!
(대부분의 개발자들도 내부 원리는 코드를 안 뜯어봐서 몰라요.^^;;)
```jsx
success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음
console.log(response)
}
```
$ajaxコード説明
type:「GET」→GETでお願いします.
url:リクエストurl
data:要求時に同時にデータ行を空に保持する(GET要求時に空に保持する)
考え直す
GETリクエストは、urlの後ろに次のように貼り付けてデータを取得します.
http://naver.com?param=value¶m2=value2
POST要求は、データをデータ:{}に入れることでデータを取得する.
data: { param: 'value', param2: 'value2' },
≪成功|Succeeded|ldap≫:成功した場合、応答値にサーバーの結果値を含めて関数を実行します.
結果はどのように反応しますか?→受け入れなきゃ...!
(多くの開発者も内部原理を知らない.コードを開いていないからだ.^^;)
success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음
console.log(response)
}
GETリクエストは、urlの後ろに次のように貼り付けてデータを取得します.
http://naver.com?param=value¶m2=value2
POST要求は、データを入れることにより、data:{}でデータを取得する.
data: { param: 'value', param2: 'value2' },
≪成功|Succeeded|ldap≫:成功した場合、応答値にサーバーの結果値を含めて関数を実行します.
結果はどのように反応しますか?→受け入れなきゃ…!
(多くの開発者も内部原理を知らない.コードを開いたことがないからだ.^^;)
success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음
console.log(response)
}
Reference
この問題について([コード初心者]第2週-スパルタコードクラブ), 我々は、より多くの情報をここで見つけました https://velog.io/@vemomy2011/코딩초보-2주차-스파르타-코딩클럽-왕초보テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol