개발 Q&A

제목 부트스트랩 모달에서 부모창에 값 전달 방법 질문드립니다.
카테고리 JavaScript
글쓴이 엑스 작성시각 2018/05/10 21:51:27
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 18679   RSS

 

모바일 웹 개발 중인 웹 초보 개발자입니다.

생각하는 기능은 고객검색 버튼을 클릭하면 레이어 팝업이 열리고 ajax로 고객을 검색하고 사용자가 고객을 선택하면

부모창에 그 값이 전달하는 것 까지입니다.

모바일 웹이라 일반 팝업은 생각하지 않고 있습니다.

 

부트스트랩 모달을 이용해서 팝업을 열고 ajax로 고객을 검색하는 것 까지는 구현했습니다만

부모창에 넘겨주는 방법을 모르겠습니다.

부트스트랩 홈페이지에도 부모창에서 모달창으로 값을 전달하는 건 있는데 

모달창에서 부모창으로 값을 전달하는 방법이 없어서 아주 곤란해 하고 있습니다.

너무 당연한 방법이 있어서인지, 아니면 제가 못찾는 건지 방법을 모르겠네요.

 

부트스트랩 모달이 아닌 레이어팝업으로라도 구현이 가능했으면 해서 레이어팝업에 관련된 내용도

이것저것 검색해 봤는데 답을 못찾았습니다.

 

c만 쓰다가 18년만에 웹개발을 해보다 보니 기능 구현에 필요한 부분만 공부해서 - -;;

아주 기초적인 지식도 부족한 부분이 많습니다. 그래서 질문하기까지 고민을 많이 했는데

힌트라도 주시면 감사하겠습니다.

 

짧은 지식으로 

opener.document.form.gst_no.value='값';  또는 parent.document.form.gst_no.value='값';

이런 식으로 처리해 봤지만 안되네요.

 

...쿠키를 써야하나 고민 중입니다.

 다음글 리눅스.서버 영상 플레이어 사용 . 사용프로그램 / 서... (1)
 이전글 익스플로러에서 페이징 버튼 클릭 시 아무 반응이 없는 ... (2)

댓글

kaido / 2018/05/10 22:00:38 / 추천 0

opener 빼고 사용 하시면 됩니다.

 

모달 팝업. 레이어팝업. 둘다 같은 말입니다.

새창이나 새탭으로 만드는게 아닌, 같은 페이지 내에서 호출하는거라서 그냥 값 전달 하시면 됩니다.

엑스 / 2018/05/10 22:07:02 / 추천 0

아. 감사합니다.

고맙습니다.

정말 정말 저한테는 생각하기도 어려운 답이었네요.

닉네임 / 2018/05/23 01:24:33 / 추천 0
저도 지금 이걸로 고민인데 부모창에 어떻게 값을 넘기셨나요?ㅠㅠ 답변 봐도 모르겠습니다..
엑스 / 2018/05/27 20:42:23 / 추천 0
전체를 옮기기에는 양도 많고 해서 포인트가 되는 부분만 적어보았습니다.
저 자신이 초심자라 부족한 부분이 있을거 같아 조심스럽습니다.
저는 이렇게 해결했는데, 도움이 되셨으면 합니다.
 
                    //main.php  부모창에서 레이어팝업 호출
                    <div class="col-xs-2">
                        <!-- Button trigger modal -->
                        <button type="button" class="btn btn-primary btn-sm" data-toggle="modal" href="/gst/srch"  data-target="#gst_srch">
                        검색
                        </button>
                    </div>
                    
                    //modal.php  레이어팝업에서 ajax 처리
                    $(function() {
                        $("#search_btn").click(function () {
                            $.ajax({
                                url: "/gst/srch",
                                type: "POST",
                                data: {
                                    "srch_gst_nm": encodeURIComponent($("#srch_gst_nm").val()),
                                    "csrf_tk_nm": getCookie('csrf_ck_nm')
                                },
                                dataType: "html",
                                complete: function(xhr, textStatus) {
                                    if (textStatus == 'success') {
                                        if (xhr.responseText == 1000) {
                                            alert('댓글 내용을 입력하세요.');
                                        } else if (xhr.responseText == 2000) {
                                            alert('다시 입력하세요.');
                                        } else if (xhr.responseText == 9000) {
                                            alert('로그인해야 합니다.');
                                        } else {
                                            //alert(xhr.responseText);
                                            $("#list_table").html(xhr.responseText);
                                        }
                                    }
                                }
                            });
                        });
                    });
                    
                    //main.php  부모창에서 레이어팝업에서의 값 반영
                    function closeWin(gst_no, gst_nm) {
                    document.getElementById("gst_no").value=gst_no;
                    document.getElementById("gst_nm").value=gst_nm; 
                        $('#modalclose').trigger('click');
                    }