Winnie The Pooh Bear PHP사이트 만들기_이용약관 체크하고 넘어가기

배움기록/PHP

PHP사이트 만들기_이용약관 체크하고 넘어가기

코딩은 처음이라 2023. 5. 9. 23:35

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90
반응형

PHP사이트 만들기_이용약관 체크하고 넘어가기

 

 

 

 

HTML

<div class="join__inner">
        <h2>이용약관</h2>
            <div class="index">
                <ul>
                    <li class="active">1</li>
                    <li>2</li>
                    <li>3</li>
                </ul>
            </div>
            <div class="join__agree">
                <div class="scroll">
                    제1조 (목적)<br>
                    본 약관은 [서비스 제공자] (이하 "회사")가 제공하는 인터넷 관련 서비스 (이하 "서비스")의 이용과 관련하여 회사와 회원의 권리와 의무 및 책임사항을 규정함을 목적으로
                    합니다.<br>
                    제2조 (용어의 정의)<br>
                    "서비스"라 함은 회사가 제공하는 모든 인터넷 관련 서비스를 의미합니다.<br>
                    "회원"이라 함은 서비스를 이용하기 위하여 회사와 이용계약을 체결한 자를 의미합니다.<br>
                    "아이디(ID)"라 함은 회원의 식별과 서비스 이용을 위하여 회원이 정하고 회사가 승인하는 문자와 숫자의 조합을 의미합니다.<br>
                    "비밀번호"라 함은 회원이 부여 받은 아이디와 일치된 회원임을 확인하고 비밀보호를 위해 회원 자신이 설정한 문자 또는 숫자의 조합을 의미합니다.<br>
                    제3조 (이용계약의 체결 및 해지)<br>
                    이용계약은 회원이 본 약관에 동의하고 회사가 정한 회원가입 양식에 따라 회원정보를 기입하여 이용신청을 하고 회사가 이를 승낙함으로써 체결됩니다.
                </div>
                <div class="check">
                    <input type="checkbox" id="agreecheck1" class="agreeCheck">
                    찐 블로그 이용약관
                </div>
                <div class="scroll">
                    개인정보 수집 및 이용 동의서<br>
                    [찐주식회사]은(는) 정보통신망 이용촉진 및 정보보호 등에 관한 법률 제22조 제1항에 따라 개인정보를 수집, 이용하고 있습니다. <br>
                    이에 관한 사항은 아래와 같습니다.<br>
                    수집하는 개인정보 항목<br>
                    수집항목: [이름, 생년월일, 성별, 아이디, 비밀번호, 이메일, 휴대전화번호, 직업, 거주지, 결제정보 등]<br>
                    수집방법: 홈페이지, 서면양식, 팩스, 전화, 이메일, 이벤트 응모 등<br>
                    2. 개인정보의 수집 및 이용 목적<br>
                    회원관리, 서비스 제공, 계약 이행, 요금정산 등<br>
                    이벤트 및 광고성 정보 제공<br>
                    3. 개인정보 보유 및 이용 기간<br>
                    회원 탈퇴 또는 회원이 요청할 경우 지체 없이 파기됩니다.<br>
                    상법 등 관련법령에 의하여 보존할 필요가 있는 경우에는 일정 기간 동안 보존합니다.<br>
                    4. 개인정보 제공<br>
                </div>
                <div class="check">
                    <input type="checkbox" id="agreecheck2" class="agreeCheck">
                    개인정보 수집 및 이용 동의
                </div>
                <div>
                    <p class="agreeMsg"></p>
                    <a href="joinSave.php" class="btnStyle4 agreeBtn">동의</a>
                </div>
            </div>
        </div>
    </main>
    <!-- //main -->

회원가입을 위해 이용약관에 동의하고 넘어가게 페이지를 만들었습니다.

 

input type="checkbox" id="agreecheck1" class="agreeCheck" 체크 박스를 반드는 input 태그 입니다.

p class=agreeMsg 사용자가 체크박스를 선택하지 않았을 경우, 경고 메세지를 표시하기 위해 만든 p태그 입니다.

 

script

<script>
    const agreeBtn = document.querySelector('.agreeBtn');
    const agreeCheck = document.querySelectorAll('.agreeCheck');
    const agreeMsg = document.querySelector('.agreeMsg');

    agreeMsg.style.display = "none";

    agreeBtn.addEventListener('click', (e) => {


        agreeCheck.forEach((check) => {

            if (check.checked == false){
                agreeMsg.style.display = "block";
                agreeMsg.innerHTML = "체크박스를 다시한번 확인해 주세요"
                e.preventDefault();
            };
        });
    });
</script>

동의 버튼을 클릭했을 때, 모든 체크박스가 선택되어 있는지 확인하는 역할을 합니다.

 

체크박스 중 하나라도 선택되어 있지 않으면, 체크박스를 다시 확인해주세요 라는 메세지를 출력합니다.

 

버튼과 체크, 메세지 출력구역에 대한 선택자를 만들어주고

addEventListener 메서드를 사용해 클릭 이벤트를 실행합니다.

 

forEach메서드를 사용해 각 체크박스가 선택되어 있는지 확인하고, 체크박스 중 하나라도 선택되어 있지 않으면 preventDefault 메서드를 호출해 버튼의 기본 이벤트를 막습니다.

또한 style 속성을 이용해 agreeMsg 요소를 숨기고, 선택되지 않은 체크박스가 있을 때만 메세지를 출력하도록 합니다.

반응형