커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
깃허브 업로드 후 페이지 접속 시 스파르타플릭스 현재 기온이 보이지 않음
[왕초보] 웹개발 종합반 v0
5주차
북마크
박*은
댓글
7
추천
0
조회수
23
조회수
23
답변 완료

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

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


서울의 실시간 정보를 받아와서 '추워요'나 '더워요'가 정상적으로 표시되는 것을 확인한 다음에

깃허브에 업로드했으나 현재 기온 상태가 보이지 않습니다.

강의 화면에도 비어있던데

어떤 실수를 했는지

정상적으로 보이게 하려면 어떻게 해야되는지 알고싶습니다.



스파르타 즉문즉답






작성한 코드 및 에러 메세지

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>스파르타플릭스</title>

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

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

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



    <style>

        @import url('https://fonts.googleapis.com/css2?family=Orbit&display=swap');


        * {

            font-family: 'Orbit', sans-serif;

        }



        .main {  

            color: white;


            background-image: url('https://occ-0-1123-1217.1.nflxso.net/dnm/api/v6/6AYY37jfdO6hpXcMjf9Yu5cnmO0/AAAABeIfo7VL_VDyKnljV66IkR-4XLb6xpZqhpLSo3JUtbivnEW4s60PD27muH1mdaANM_8rGpgbm6L2oDgA_iELHZLZ2IQjG5lvp5d2.jpg?r=e6e.jpg');

            background-position: center;

            background-size: cover;


        }


        body {

            background-color: black;

        }


        .mycards {

           

            width: 1200px;


            margin: 20px auto 20px auto;

        }


        .card {

            height: 550.88px;

        }


        .mypostingbox {

            width: 500px;

            margin: 20px auto 20px auto;

            border: 1px solid white;


            padding: 20px;

            border-radius: 5px;

        }


        .form-floating>input {

            background-color: transparent;

            color: white;

        }


        .form-floating>label {

            color: white;

        }


        .input-group>label {

            background-color: transparent;

            color: white;

        }


        .mypostingbox>button {

            width: 100%;

        }


    </style>

    <script type="module">

        // Firebase SDK 라이브러리 가져오기

        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";



        // For Firebase JS SDK v7.20.0 and later, measurementId is optional

        const firebaseConfig = {

            apiKey: "AIzaSyAbxvaBJxH16M80f-qFYg9G2hUIorKmqDU",

            authDomain: "sparta-f2c46.firebaseapp.com",

            projectId: "sparta-f2c46",

            storageBucket: "sparta-f2c46.appspot.com",

            messagingSenderId: "761509710620",

            appId: "1:761509710620:web:623011932364d5765fc8d9",

            measurementId: "G-YQTCWBFW8H"

        };



        // Firebase 인스턴스 초기화

        const app = initializeApp(firebaseConfig);

        const db = getFirestore(app);


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

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

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

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

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


            let doc = {

                'image': img,

                'title': title,

                'star': star,

                'comment': comment

            };

            await addDoc(collection(db, "movies"), doc);

            alert('저장 완료');

            window.location.reload();

        })


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

            $('#postingbox').toggle();

        })



        let url = "http://spartacodingclub.shop/sparta_api/weather/seoul";

        fetch(url).then(res => res.json()).then(data => {

            let temp = data['temp']

           

            if (temp > 20) {

                $('#a').text("더워요");

            } else {

                $('#a').text("추워요");

            }

        })



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

        docs.forEach((doc) => {

            let row = doc.data();


            let img = row['image'];

            let title = row['title'];

            let star = row['star'];

            let comment = row['comment'];


            let temp_html = `

            <div class="col">

                <div class="card">

                    <img src="${img}"

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

                    <div class="card-body">

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

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

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

                    </div>

                </div>

            </div>`

           

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

           

        });




    </script>



</head>


<body>

    <header class="p-3 text-bg-dark">

        <div class="container">

            <div class="d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start">

                <a href="/" class="d-flex align-items-center mb-2 mb-lg-0 text-white text-decoration-none">

                    <svg class="bi me-2" width="40" height="32" role="img" aria-label="Bootstrap">

                        <use xlink:href="#bootstrap"></use>

                    </svg>

                </a>


                <ul class="nav col-12 col-lg-auto me-lg-auto mb-2 justify-content-center mb-md-0">

                    <li><a href="#" class="nav-link px-2 text-danger">spartaflix</a></li>

                    <li><a href="#" class="nav-link px-2 text-white"></a></li>

                    <li><a href="#" class="nav-link px-2 text-white">시리즈</a></li>

                    <li><a href="#" class="nav-link px-2 text-white">영화</a></li>

                    <li><a href="#" class="nav-link px-2 text-white">내가 찜한 콘텐츠</a></li>

                    <li><a href="#" class="nav-link px-2 text-white">현재 기온 : <span id="a"></span></a></li>

                </ul>


                <form class="col-12 col-lg-auto mb-3 mb-lg-0 me-lg-3" role="search">

                    <input type="search" class="form-control form-control-dark text-bg-dark" placeholder="Search..."

                        aria-label="Search">

                </form>


                <div class="text-end">

                    <button type="button" class="btn btn-outline-light me-2">Login</button>

                    <button type="button" class="btn btn-danger">Sign-up</button>

                </div>

            </div>

        </div>

    </header>



    <div class="main">

        <div class="p-5 mb-4 bg-body-tertiary rounded-3">

            <div class="container-fluid py-5">

                <h1 class="display-5 fw-bold">킹덤</h1>

                <p class="col-md-8 fs-4">병든 왕을 둘러싸고 흉흉한 소문이 떠돈다. 어둠에 뒤덮인 조선, 기이한 역병에 신음하는 신하. 정체 모를 악에 맞서 백성을 구원할 희망은 오직

                    세자뿐이다.

                </p>

                <button id="savebtn" type="button" class="btn btn-light">영화 기록하기</button>

                <button type="button" class="btn btn-light">상세 정보</button>

            </div>

        </div>

    </div>


    <div class="mypostingbox" id="postingbox">

        <div class="form-floating mb-3">

            <input type="email" class="form-control" id="img" placeholder="영화 이미지 주소">

            <label for="floatingInput">영화 이미지 주소</label>

        </div>

        <div class="form-floating mb-3">

            <input type="email" class="form-control" id="title" placeholder="영화 제목">

            <label for="floatingInput">영화 제목</label>

        </div>

        <div class="input-group mb-3">

            <label class="input-group-text" for="inputGroupSelect01">별점</label>

            <select class="form-select" id="star">

                <option selected>별점 선택</option>

                <option value="⭐"></option>

                <option value="⭐⭐">⭐⭐</option>

                <option value="⭐⭐⭐">⭐⭐⭐</option>

                <option value="⭐⭐⭐⭐">⭐⭐⭐⭐</option>

                <option value="⭐⭐⭐⭐⭐">⭐⭐⭐⭐⭐</option>

            </select>

        </div>

        <div class="form-floating mb-3">

            <input type="email" class="form-control" id="comment" placeholder="추천 이유">

            <label for="floatingInput">추천 이유</label>

        </div>

        <button id="postingbtn" type="button" class="btn btn-danger">기록하기</button>

    </div>


    <div class="mycards">

        <div id="card" class="row row-cols-1 row-cols-md-4 g-4">

           


        </div>

    </div>

</body>


</html>



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