본문 바로가기

프로젝트_ 커피주문 서비스

결제 모달 띄우기

  • header.mustahce 에 스크립트 추가
<!doctype html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
    <!-- 모달 스크립트 -->
    <!-- JavaScript Bundle with Popper -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>

    <title>Coffee SHOP</title>
</head>
<body>

<!-- navigation -->
			
            .
            .
            .
            .

 

  • product.mustache 에 모달 설정
				
                .
                .
                .
                

<!-- 로그인 확인 후 출력 부분 -->
{{#userId}}
{{#products}}
    <div class="row row-cols-1 row-cols-md-3 g-4" style="margin: 0 auto">
        <div class="col">
            <div class="card">
                <img src="images/coffee.png" class="card-img-top">
                <div class="card-body">
                    <input type="hidden" id="id" value="{{id}}">
                    <h5 class="card-title" id="name">{{name}}</h5>
                    <p class="card-text">{{price}} 원</p>

                    <button class="btn btn-outline-secondary" id="order-btn" productId="{{id}}"
                    userId="{{userId}}" total="{{price}}">주문하기</button>

                    <!-- 모달 버튼 -->
                    <button type="button"
                            class="btn btn-sm btn-outline-primary"
                            data-bs-toggle="modal"
                            data-bs-target="#pay-modal"
                            data-bs-userName="{{userName}}"
                            data-bs-productName="{{name}}"
                            data-bs-price="{{price}}"
                            >결제</button>

                </div>
            </div>
        </div>
    </div>

    <!-- 모달 -->
    <div class="modal fade" id="pay-modal" tabindex="-1">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">상품 결제</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <!-- 결제 폼-->
                    <form>
                        <!-- 주문자 이름 -->
                        <div class="mb-3">
                            <label class="form-label">주문자명</label>
                            <input class="form-control form-control-sm" id="userName" readonly>
                        </div>
                        <!-- 상품 이름 -->
                        <div class="mb-3">
                            <label class="form-label">상품 이름</label>
                            <input class="form-control form-control-sm" id="productName" readonly>
                        </div>
                        <!-- 상품 가격 -->
                        <div class="mb-3">
                            <label class="form-label">상품 가격</label>
                            <input class="form-control form-control-sm" id="productPrice" readonly>
                        </div>
                        <!-- 히든 인풋 -->
                        <input type="hidden" id="productId">
                        <!-- 전송 버튼 -->
                        <button type="button" class="btn btn-outline-primary btn-sm" id="pay-btn"
                                >결제</button>
                    </form>
                </div>
            </div>
        </div>
    </div>
{{/products}}
{{/userId}}


<script>
{
    //모달 버튼 변수화
    const payModal = document.querySelectorAll("#pay-modal");
    //모달 이벤트
    payModal.forEach(btn => {
        btn.addEventListener("show.bs.modal", (event) => {
            //트리거 버튼 선택
            const triggerBtn = event.relatedTarget;
            //데이터 가져옴
            const userName = triggerBtn.getAttribute("data-bs-userName");
            const productName = triggerBtn.getAttribute("data-bs-productName");
            const productPrice = triggerBtn.getAttribute("data-bs-price");

            //데이터 반영
            document.querySelector("#userName").value = userName;
            document.querySelector("#productName").value = productName;
            document.querySelector("#productPrice").value = productPrice;
        });
    });
}

				
                .
                .
                .
                
</script>

 

 

 

 

GitHub - Pearlmoon997/CoffeeShop: CoffeeShop

CoffeeShop. Contribute to Pearlmoon997/CoffeeShop development by creating an account on GitHub.

github.com

 

'프로젝트_ 커피주문 서비스' 카테고리의 다른 글

결제 버튼 API 호출  (0) 2022.09.17
마이페이지  (0) 2022.08.31
주문하기 구현  (0) 2022.08.28
네이버 로그인 API (+구글 로그인 API)  (0) 2022.08.11
레이아웃, Member 변경  (0) 2022.08.11