[コード初心者]第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&param2=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) 
    }
  • type:「GET」→GETでお願いします.
  • url:リクエストurl
  • data:要求時にローデータを空にしておく.
  • 考え直す
    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) 
    }