이전 목록 다음
채택완료

모달팝업 관련 질문입니다...!!

2021-09-06 (월) 11:25:32 2,236

안녕하세요. php를 배우고있는 초보입니다.

데이터 입력이 완료되면 모달팝업을 띄우고싶은데 모달이 작동을 안하네요..!!

데이터는 정상적으로 DB에 들어와서 조회까지 가능합니다.

아래는 사용중인 코드입니다.!!

두번누르면 이미예약되었다는 경고창은 뜨는데 모달만 작동을 안합니다 ㅠ 어느부분을 수정하면 좋을까요?? 조언부탁드리겠습니다..

Copy
<!--신청완료팝업-->

                        <?php

                         // 개인정보가 유출될 여지가 있어서 ajax 방식으로 변경함.

                        // 예약 성공한 경우 팝업에 사용할 변수

                        $rsv = preg_replace('/[^0-9]/', '', $_GET['rsv']);

                        if ($rsv > 0){

                            $sql    = mysql_query("select name, date, time from n_visit_reservation where no='$rsv' ");

                            $d      = mysql_fetch_array($sql);

                            $name   = $d['name'];

                            $date   = str_split($d['date'], 2);

                            $time   = str_split($d['time'], 2);

                        }

                        

                        ?>

 

                        <div id="popModal" class="modal" <?=($rsv?"style='display:block'":"")?>>

                            <div class="modal-content">

                                <span class="close cursor" id="popModal_close">&times;</span>

                                <!-- <div class="bar"><img src="/image/sub/reservation/halla.gif"></div> -->

                                <div class="content_inner">

                                    <div class="nth_01">견본주택 사전방문 예약이<br />완료되었습니다.</div>

                                    <div class="nth_02"><img src="../image/sub/reservation/icon1.gif"></div>

                                    <div class="result">

                                        <strong id="rsved_name"></strong>님, 예약해주셔서 감사합니다.<br />

                                        <b>

                                            <span id="rsved_date1"></span>월

                                            <span id="rsved_date2"></span>일

                                            <span id="rsved_time1"></span>시

                                            <span id="rsved_time2"></span>분

                                        </b>

                                        에 뵙겠습니다.

                                    </div>

                                    <p>지정된 시간보다 늦게 도착하실 경우<br />관람 제한이 있을 수 있으니<br/>예약 시간 10분 전 방문을 권장드립니다.</p>

                                </div>

                            </div>

                        </div>

                        <!--//신청완료팝업-->

 

 

$.ajax({

                url:"reservation_apt_do.php",

                data : vdata,

                type : "POST",

                dataType : "text",

                success : function(data) {

                    if (data == 'success'){

                        $("#rsved_name").text(vr_name);

                        $("#rsved_date1").text(date1);

                        $("#rsved_date2").text(date2);

                        $("#rsved_time1").text(time1);

                        $("#rsved_time2").text(time2);

                        $("#popModal").fadeIn(300);

                    } else if (data == 'full'){

                        alert('선택하신 날짜의 시간은 더이상 예약할 수 없습니다.\n다른 시간이나 날짜를 선택해주세요.');

                        getTime(vr_date); // 시간표 다시 조회

                        $('html, body').animate({

                            scrollTop: $(".select_wrap").offset().top - 30

                        }, 750);

                    } else if (data == 'already'){

                        alert('이미 등록된 연락처입니다.');

                    } else if (data == 'error'){

                        alert('접수실패! 다시 입력해주세요.');

                    }

                },

                error : function() {

                    alert("데이터 입력중 오류가 발생했습니다.\n다시 시도해주시기 바랍니다. [ERR-INS1]");

                }

            });

답변 1개 / 댓글 1개

채택된 답변
+20 포인트

ajax를 보시면 success 부분이 전체적으로 잘못되어있습니다

reservation_apt_do.php에서 마지막에 어떤식으로 처리를 해주는지도 한번봐야할것같네요

dataType이 text면 마지막에 echo 'success';이런식으로 끝나는것같은데

그렇게 되면

$("#rsved_name").text(vr_name);

$("#rsved_date1").text(date1);

$("#rsved_date2").text(date2);

$("#rsved_time1").text(time1);

$("#rsved_time2").text(time2);

여기에 들어가는 데이터들은 어떻게 가져올까요? ㅎㅎ

아마 이데이터들이 없으니 .text가 오류가 발생하여 마지막에

$("#popModal").fadeIn(300);가 작동을 안한것같네요

dataType을 json으로 하고 reservation_apt_do.php에서 끝날때 data를 json으로 보내줄필요가있어보입니다

답변에 대한 댓글 1개

답변 감사합니다! 확인해보겠습니다~!

답변을 작성하려면 로그인이 필요합니다.