스파르타 웹개발종합반 2주차-3

thermal·2022년 9월 11일
0

클라이언트 -> 서버 : GET 요청

  • GET → 통상적으로! 데이터 조회(Read)를 요청할 때
    예) 영화 목록 조회

  • POST → 통상적으로! 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때
    예) 회원가입, 회원탈퇴, 비밀번호 수정


Ajax 기본 골격

링크에 있는 Ajax 형식 데이터를 가져온다

$.ajax({
  type: "GET", // GET 방식으로 요청한다.
  url: "http://spartacodingclub.shop/sparta_api/seoulair",
  data: {}, // 요청하면서 함께 줄 데이터 (GET 요청시엔 비워두세요)
  success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음
    console.log(response) // 서버에서 준 결과를 이용해서 나머지 코드를 작성
  }
})
  • $ajax 코드 설명
    • type: "GET" → GET 방식으로 요청한다.
    • url: 요청할 url
    • data: 요청하면서 함께 줄 데이터 (GET 요청시엔 비움)

Ajax 사용

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

    </style>

    <script>
        function q1() {
            $('#names-q1').empty() //id가 names-q1인 부분을 비움
            $.ajax({
                type: "GET",
                url: "http://spartacodingclub.shop/sparta_api/seoulair",
                data: {},
                success: function (response) {
                    let mise_list = response['RealtimeCityAir']['row']
                    for (let i = 0; i < mise_list.length ; i++) {
                        let gu_name = mise_list[i]["MSRSTE_NM"]
                        let gu_mise = mise_list[i]["IDEX_MVL"]

                        let temp_html = ''
                        if (gu_mise > 40) {
                            temp_html = `<li class="bad">${gu_name} : ${gu_mise}</li>`
                        }
                        else {
                            temp_html = `<li>${gu_name} : ${gu_mise}</li>`
                        }

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

</head>

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

<hr/>

<div class="question-box">
    <h2>1. 서울시 OpenAPI(실시간 미세먼지 상태)를 이용하기</h2>
    <p>모든 구의 미세먼지를 표기해주세요</p>
    <p>업데이트 버튼을 누를 때마다 지웠다 새로 씌여져야 합니다.</p>
    <button onclick="q1()">업데이트</button>
    <ul id="names-q1">
    </ul>
</div>
</body>
  • ajax 불러오기 전에 먼저 names-q1 부분 비움
  • gu_mise가 40보다 높을 경우 class="bad"를 줘서 style 먹임
  • ajax에서 가져온 정보를 temp_html에 넣어 names-q1에 append
  • id 사용은 $('#id') 형식
  • 코드로서 넣은 temp_html은 ``로(따옴표 아님) 감싼다
  • temp_html에서 변수로 넣을 부분은 ${변수명}
  • 업데이트 button 누를 때마다 names-q1 비워진 후 ajax에서 가져온 정보로 채워짐

이미지 바꾸기 : $("#아이디값").attr("src", 이미지URL);
텍스트 바꾸기 : $("#아이디값").text("바꾸고 싶은 텍스트");

  • script 실행시마다 아이디 부분의 이미지나 텍스트 바꿈

로딩 후 바로 호출

$(document).ready(function(){ 호출할 함수 }

$(document).ready(function(){
listing();
});

function listing() {
console.log('화면 로딩 후 잘 실행되었습니다');
}
  • 페이지 로딩 후 listing() 함수 실행

0개의 댓글