커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
두번째 과제 너무 어렵네요ㅠㅠ
[왕초보] 코딩이 처음이어도 쉽게 배우는 웹개발 A to Z v0
기타
북마크
송*영
댓글
18
추천
0
조회수
23
조회수
23
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.




콘솔에서 258열이 잘못됐다고 하는데

도대체 뭐가 잘못됐는지 모르겠어요. 그대로 복붙했는데말이죠..


그리고 숙제 제대로 한건지 전체적으로 한번 훑어봐주세요

뭔가 덜한거 같은데 뭘 덜한건지조차 모르겠어요ㅠㅠ

계속 강의 다시보기 하는데도....


전체코드가 길어서 그런지 질문작성이 계속 실패되길래

헤드부분 코드만 적어넣었습니다





<!doctype html>

<html lang="en">


<head>

  <meta charset="utf-8">

  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">


  <title>푸드파이터</title>

  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"

    integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"

    integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"

    crossorigin="anonymous"></script>

  <style>

    @import url('https://fonts.googleapis.com/css2?family=Black+Han+Sans&family=Gowun+Dodum&display=swap');


    * {

      font-family: 'Gowun Dodum', sans-serif;

    }


    body {

      background-color: white;

      color: black;

    }


    .header {

      background-size: cover;

      background-image:

        url('https://images.unsplash.com/photo-1531697218799-ed0ae884c6c8?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2080&q=80');

      background-position: right;

      height: 650px;

      display: flex;

      flex-direction: column;

    }


    .header>h1 {

      margin: 0;

      font-size: 40px;

    }


    .header>div {

      font-size: 18px;

      margin-top: 10px;

    }


    .form-button {

      width: 150px;

      height: 40px;

      background-color: transparent;

      border: 1px solid tr;

      color: black;

      font-size: 15px;

      margin: 20px 10px 0px 0px;

    }


    .form-button:hover {

      border: 2px solid black;

    }


    .info-button {

      margin: 20px 0 0 15px;

      height: 40px;

      font-size: 14px;

    }


    .post {

      width: 500px;

      margin: 20px 0px 1px 20px;

      padding: 20px;

      box-shadow: 0px 0px 3px 0px transparent;

      background-color: wheat;

    }


    .form-floating input,

    .form-floating textarea {

      color: black;

      background-color: white;

    }


    .button2 {

      display: flex;

      justify-content: flex-end;

      margin-top: 15px;

    }


    .button2>button {

      margin-right: 10px;

    }


    .mycards {

      width: 1600px;

      margin: 30px auto;


      flex-direction: row;

      align-items: center;

    }


    .card {

      border-radius: 30px;

      background-color: white;

      border: none;

      color: black;

      margin-left: 50px;

    }


    .card-img-top {

      object-fit: cover;

      height: 250px;

      border-radius: 20px;

    }


    .card-title {

      margin-top: 10px;

      font-size: 18px;

    }


    .card-body {

      border: blanchedalmond 2px solid;

      border-radius: 20px;

    }


    .card-text {

      color: black;

    }


    .comment {

      color: black;

    }


    .play-button {

      display: flex;

      justify-content: flex-start;

      margin-top: 15px;

    }


    a.nav-link {

      color: #F17228;

      font-size: large;

    }


    .icon {

      height: 50px;

    }


    .card-button {

      background-color: orange;

      color: white;

      text-align: center;

      padding: 10px 15px;

      border: none;

      border-radius: 6px;

      cursor: pointer;

    }


    .card-title {

      font-weight: bold;

    }


    .card-button> :hover {

      background-color: darkorange;

    }


    #input-card {

      width: 500px;

      margin: 0px 0px 0px 135px;

      padding: 20px;

      background-color: #f9f9f9;

      border-radius: 10px;

      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);

      float: left;

    }


    .form-floating input,

    .form-floating textarea {

      color: black;

      background-color: #f9f9f9;

      border: 1px solid #ccc;

      border-radius: 5px;

      margin-bottom: 10px;

      padding: 10px;

      width: 100%;

    }


    .form-floating label {

      color: #333;

    }


    .input-group button,

    .input-group select {

      background-color: rgb(168, 161, 161);

      color: white;

      border: none;

      border-radius: 5px;

      cursor: pointer;

      margin-top: 10px;

    }


    .input-group button:hover,

    .input-group select:hover {

      background-color: gray;

    }


    .button2 {

      text-align: right;

    }


    .button2 button {

      background-color: #F17228;

      color: white;

      border: none;

      border-radius: 5px;

      cursor: pointer;

    }


    .button2 button:hover {

      background-color: #f3620f;

    }


    .jumbotron-message {

      margin-left: 150px;

      font-size: 1500px;

    }

  </style>

  <script type="module">

    import { initializeApp } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-app.js";

    import { getFirestore } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";

    import { collection, addDoc } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";

    import { getDocs } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";


    // https://firebase.google.com/?hl=ko

    // 파이어베이스에 접속한 후 프로젝트 설정에 들어갑니다.

    // 본인 firebaseConfig 내용으로 설정해 줍니다.

    const firebaseConfig = {

      apiKey: "AIzaSyAEFsVLCgeut-nyuAU8FmepSTSAzp95Ax0",

      authDomain: "sparta-53d7d.firebaseapp.com",

      projectId: "sparta-53d7d",

      storageBucket: "sparta-53d7d.appspot.com",

      messagingSenderId: "87946304199",

      appId: "1:87946304199:web:b4c44e8ac3011024d7fce2",

      measurementId: "G-RTSQLRYJ8Z"

    };


    const app = initializeApp(firebaseConfig);

    const db = getFirestore(app);


    // 데이터 추가





    // title_input, comment_input, image_input id를 가진 HTML 요소에서 값을 가져와서 title, comment, image 변수에 저장해 주세요.


    try {

      const docRef = await addDoc(collection(db, "foods"), {


        // 각각 담은 변수를 컬렉션 필드에 title, comment, image에 각각 넣어주세요.

        $("#addBtn").click(async function () {

          let title = $('#title').val();

          let comment = $('#comment').val();

          let star = $('#star').val();

          let image = $('#image').val();


          let doc = {

            'title': title,

            'comment': comment,

            'star': star,

            'image': image

          };

        });

      }

      

      alert("음식이 추가 되었습니다!");

      window.location.reload();

    )

    };


    // 데이터 읽기 및 카드 생성

    $(".row-cols-3").empty();

    const querySnapshot = await getDocs(collection(db, "foods"));


    querySnapshot.forEach((doc) => {


      let title = doc.data().title;

      let comment = doc.data().comment;

      let star = "⭐".repeat(doc.data().star);

      let image = doc.data().image;


      // 문서의 title, comment, image, star 필드에서 데이터를 추출한 변수명을 갖고,

      // tempHtml 문자열에 각 데이터를 포함한 카드의 HTML 코드를 생성하세요.


      let docs = await getDocs(collection(db, "foods"));

      docs.forEach(doc) => {

        let row = doc.data();


        let title = row['title'];

        let comment = row['comment'];

        let star = row['star'];

        let image = row['image'];

      }


      let temp_html = `

      <div class="col">

        <div class="card h-100">

          <img src="${image}"

            class="card-img-top" alt="...">

          <div class="card-body">

            <h5 class="card-title">${title}</h5>

            <p class="card-text">${comment}</p>

          </div>

          <div class="card-footer">

            <small class="text-body-secondary">${star}</small>

          </div>

        </div>

      </div>`;

      $('#card').append(temp_html);


    });



    $(".row-cols-3").append(tempHtml);



  </script>

</head>




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴