• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 Ajax 요청해서 상품 더보기 버튼 만들기 두번째

Ajax 요청해서 상품 더보기 버튼 만들기 두번째

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #98285

    최연진
    참가자
        <script>
          var products = [
            { id: 0, price: 70000, title: "Blossom Dress" },
            { id: 1, price: 50000, title: "Springfield Shirt" },
            { id: 2, price: 60000, title: "Black Monastery" },
          ];
          /*재사용하기위해 함수 생성*/
          function productsData(data) {
            data.forEach((a, i) => {
              //products[i]를 a로 변경가능
              let temple = `<div class="col-sm-4">
              < img src="https://via.placeholder.com/600" class="w-100" />
              <h5>${a.title}</h5>
              <p>가격 : <span>${a.price}</span></p>
              </div>`;
              let wrap = document.querySelector(".row");
              wrap.insertAdjacentHTML("beforeend", temple);
            });
          }
    
    
          /*더보기 버튼 누르기전에 보여지는 상품3개*/
          products.forEach((a, i) => {
            let temple = `<div class="col-sm-4">
              < img src="https://via.placeholder.com/600" class="w-100" />
              <h5>${a.title}</h5>
              <p>가격 : <span>${a.price}</span></p>
              </div>`;
            let wrap = document.querySelector(".row");
            wrap.insertAdjacentHTML("beforeend", temple);
          });
    
    
          /*더보기 버튼 눌렀을때 보여지는 상품*/
          let btn = document.querySelector("#more");
          let count = 0;
          btn.addEventListener("click", function () {
            count++; //이벤트 발생시 카운드 플러스
    
    
            //버튼 1번 눌렀을때 실행
            if (count == 1) {
              fetch("https://codingapple1.github.io/js/more1.json")
                .then((res) => res.json())
                .then(function (data) {
                  productsData(data);
                })
                .catch((error) => {
                  console.log("error");
                });
              //버튼 2번 눌렀을때 실행
            } else if (count == 2) {
              fetch("https://codingapple1.github.io/js/more2.json")
                .then((res) => res.json())
                .then(function (data) {
                  productsData(data);
                  btn.style.display = "none";
                })
                .catch((error) => {
                  console.log("error");
                });
            }
          });
    
    이렇게 하였는데요 if문에 count == 1 , count == 2 ... 이렇게되면  목록이 여러개면
    계속 if문을 추가해줘야할텐데 이부분이 궁금해서 게시판 질문글에서 찾아봤는데
    선생님께서 
    버튼누를 때 'more' + count + '.json' 으로 get요청하면 될듯요  
    
    이렇게 답변 남겨주셨는데 이부분을 어느쪽에 어떻게 써야하는건가요? 
    자세히 알려주시면 감사하겠습니다 !
    #98304

    codingapple
    키 마스터
    'more1.json' 하드코딩된 부분을  'more' + count + '.json'  로 바꿉시다
     
    #98388

    최연진
    참가자
          fetch('https://codingapple1.github.io/js/"more" + count + ".json"')
              .then((res) => res.json())
              .then(function (data) {
                productsData(data);
              })
              .catch((error) => {
                console.log("error");
              });
    
    이부분을 if문 다 지우고 이렇게 바꾸면 된다는 말씀이실까요?
    이렇게 했는데 안됩니다,,
    
    
    총 코드는 이렇게 수정하였습니다 ...! 
    
        var products = [
            { id: 0, price: 70000, title: "Blossom Dress" },
            { id: 1, price: 50000, title: "Springfield Shirt" },
            { id: 2, price: 60000, title: "Black Monastery" },
          ];
          /*재사용하기위해 함수 생성*/
          function productsData(data) {
            data.forEach((a, i) => {
              //products[i]를 a로 변경가능
              let temple = `<div class="col-sm-4">
              < img src="https://via.placeholder.com/600" class="w-100" />
              <h5>${a.title}</h5>
              <p>가격 : <span>${a.price}</span></p>
              </div>`;
              let wrap = document.querySelector(".row");
              wrap.insertAdjacentHTML("beforeend", temple);
            });
          }
          /*더보기 버튼 누르기전에 보여지는 상품3개*/
          products.forEach((a, i) => {
            let temple = `<div class="col-sm-4">
              < img src="https://via.placeholder.com/600" class="w-100" />
              <h5>${a.title}</h5>
              <p>가격 : <span>${a.price}</span></p>
              </div>`;
            let wrap = document.querySelector(".row");
            wrap.insertAdjacentHTML("beforeend", temple);
          });
          /*더보기 버튼 눌렀을때 보여지는 상품*/
          let btn = document.querySelector("#more");
          let count = 0;
          btn.addEventListener("click", function () {
            count++; //이벤트 발생시 카운드 플러스
              fetch("https://codingapple1.github.io/js/"more" + count + ".json"")
                .then((res) => res.json())
                .then(function (data) {
                  productsData(data);
                })
                .catch((error) => {
                  console.log("error");
                });
          });
    
    
    
    #98410

    codingapple
    키 마스터
    fetch("https://codingapple1.github.io/js/more" + count + ".json")
    합시다 
    
    
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠