Spring MVC 및 jQuery DataTable을 사용한 부트 스트랩 모달 팝업

루카 세페

내 앱 개발 (Spring Boot, Bootstrap, jQuery 및 jdbcTemplate으로 만든)에서 양식을 테이블 형식으로 쿼리 한 후 표시 할 결과가 몇 가지 있으며이를 달성하기 위해 jQuery DataTable을 사용했습니다. 모두 완벽하게 작동합니다.

다음 작업은 일부 필드를 편집하는 버튼이있는 테이블에 열을 추가하는 것입니다. 예를 들어, 이벤트 데이터의 경우 버튼을 클릭하면 2 개의 값, 메모 및 상태를 수정할 수 있어야합니다.

이를 수행하기 위해 DataTable 코드가있는 js 파일에 Bootstrap 모달 (처음으로이 도구를 사용하는 newbee)을 사용했습니다.

다음은 js 파일의 코드입니다.

var DTevents = false;
$(document).ready(function() {  

    DTevents = $('#eventsdata').DataTable( 
            { 
                "serverSide": true,
                "ajax":{
                            url: "../getevents.json",
                            type: "post",
                            "data": function (d)
                            {
                                d = $.extend(d, {statusname :  $('#statusname').val()}, {typename :  $('#typename').val()}, {infoname :  $('#infoname').val()},
                                                {notename :  $('#notename').val()}, {idname :  $('#idname').val()}, {username :  $('#username').val()}, 
                                                {hostname :  $('#hostname').val()});
                            }

                       },
                "columns":  [
                    { "data": "date" },
                    { "data": "type" },
                    { "data": "name" },
                    { "data": "user_name" },
                    { "data": "status" },
                    { "data": "closing_date" },
                    { "data": "info" },
                    { "data": "note" },
                    { "render": function(o){
                        return '<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Edit</button>' +
                        '<div id="myModal" class="modal fade" role="dialog">' +
                        '<div class="modal-dialog">' +
                        '<div class="modal-content">' +
                              '<div class="modal-header">' +
                                '<button type="button" class="close" data-dismiss="modal">&times;</button>' +
                                '<h4 class="modal-title">Modal Header</h4>' +
                              '</div>' +
                              '<div class="modal-body">' +
                              '<form class="form-horizontal" role="form">' +
                              '<div class="form-group">' +
                                '<label  class="col-sm-2 control-label"' +
                                          'for="inputNotes">Notes</label>' +
                                '<div class="col-sm-10">' +
                                    '<input type="text" class="form-control"' + 
                                    'id="newnote" placeholder="Put here the note"/>' +
                                '</div>' +
                              '</div>' +
                              '<div class="form-group">' +
                                '<label for = "type" class = "col-sm-2 control-label">Status</label>' +
                             '<div class = "col-sm-10">' +
                            '<select class = "form-control" id = "typename" name="type options">' +
                            '<option value="open">open</option>' +
                                '<option value="closed">closed</option>' +
                            '</select>' +
                         '</div>' +
                              '</div>' +
                            '</form>' +
                            '</div>'  +
                              '</div>' +
                              '<div class="modal-footer">' +
                                '<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>' +
                                '<button type="submit" class="btn btn-default" data-dismiss="modal">Save</button>' +
                              '</div>' +
                            '</div>' +
                          '</div>' +
                        '</div>';
                    } }
                ]
            } );
    } );

이 코드를 사용하여 예를 들어 os 유형에서 양식을 쿼리하면 다음 출력을 얻습니다.

테이블 결과 팝업 결과

보시다시피 양식 편집 팝업이 나타납니다. 그리고 괜찮습니다. 그래서, 무엇이 문제입니까?

  1. 나를 위해 모달 코드를 데이터 테이블의 js 파일에 직접 넣는 것은 끔찍합니다. 이 js 파일로 가져 오거나 포함 할 외부 파일을 갖고 싶습니다. 이것을 달성 할 수 있습니까?

  2. 이 양식은 "빈"양식입니다. 진정한 상호 작용이 아니라는 것을 의미합니다. 저장 버튼을 클릭하면 수정되지 않습니다. 나는 DAO와 컨트롤러 Spring mvc를 만들었다. 그래서 나는 이것에 폼을 "링크"해야한다. 나머지 프로젝트에서는 jsp 파일을 사용하기 때문에이 작업을 쉽게 수행합니다. 그러나이 형식은 물론 jsp 파일에 없습니다. 그래서, 내 질문은 : 만약 내가 jsp 파일 안에 모달의 코드를 넣으면,이 파일을 DataTable의 js 파일 안에 사용할 수 있습니까? 그리고 그렇지 않다면 어떻게이 양식을 진정한 대화 형으로 만들 수 있습니까?

업데이트 : 아래 응답 후 다음과 같이 코드를 수정했습니다.

(데이터 열에서)

{ "render": function ( data, type, full) {

                        return '<a class="btn btn-info btn-md">' + 'Edit' + '</a>';
                    }
                  }

(이벤트 heandling에 대한 기능 #mymodal, 다른 jsp에 정의 된 모달의 ID입니다. 참고 : 지금은 데이터 논리를 구현하지 않았고 컨트롤러로 보내기를 원하기 때문에 팝업이 열려 있는지 확인하기를 원합니다)

$("#eventsdata").on("click", ".btn btn-info btn-sm", function () {
    var html = "/jsp/editbutton.jsp";
    $("#eventsdata").load(html);
    $("#myModal").modal('show');
});

editbutton.jsp는 모달 코드를 입력하고 아래에있는 파일입니다. src/main/webapp/WEB-INF/jsp

그러나 내 코드가 작동하지 않습니다. 팝업 모달이 열리지 않습니다. 버튼은 보이지만 클릭해도 아무 일도 일어나지 않습니다. 내가 뭘 잘못 했어?

EDIT2 : 설립. 문제는 두 배였다. "on"함수의 코드는 준비된 문서 밖에 있었다. 버튼 클래스는 항상 on 함수 안에 있어야합니다.

".btn btn-info btn-sm"

그러나

".btn.btn-info.btn-md"

EDIT3 : 코드는 다음과 같습니다.

var DTevents = false; $ (문서) .ready (function () {

DTevents = $('#eventsdata').DataTable( 
        { 
            "serverSide": true,
            "ajax":{
                        url: "../getevents.json",
                        type: "post",
                        "data": function (d)
                        {
                            d = $.extend(d, {statusname :  $('#statusname').val()}, {typename :  $('#typename').val()}, {infoname :  $('#infoname').val()},
                                            {notename :  $('#notename').val()}, {idname :  $('#idname').val()}, {username :  $('#username').val()}, 
                                            {hostname :  $('#hostname').val()});
                        }

                   },
            "columns":  [
                { "data": "date" },
                { "data": "type" },
                { "data": "name" },
                { "data": "user_name" },
                { "data": "status" },
                { "data": "closing_date" },
                { "data": "info" },
                { "data": "note" },
                { "render": function ( data, type, full, meta) {

                        return "<button type='button' class='btn btn-info btn-md' data-toggle='modal' data-target='#myModal'> Edit </button>";
                }
              }
            ]
        } ); 

});

실제 문제는 두 가지 모달 쇼 솔루션 (jquery 함수 .on("click")와 코드에 사용 된 것 사용 data-toggle='modal' data-target='#myModal') 모두 주요 문제를 해결하지 못한다는 것입니다. 모달 코드로 외부 jsp를 어떻게로드 할 수 있습니까?

보다 구체적으로 문제는 무엇을 사용하는지 (jquery로드 기능을 사용할 수 있다고 가정)가 아니라 어디에서 사용하는지입니다. 예를 들어, on #eventsdata(즉, 테이블 제목이있는 페이지의 ID이고 데이터 테이블을 사용하는 페이지의 ID)을 사용하는 경우 (물론) 테이블 데이터를 다른 항목과 함께 사용하고 이것은 모달이 아닙니다. 빈 페이지가 있습니다).

부황 덕

로드해야 할 것 같아요

    "render": function ( data, type, full, meta ) {
          return <button type="button" id="modal_ +'+data.id+' " class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Edit</button>';
       ....................
   }

이 버튼에 대한 데이터를로드하려면 ajax를 수행하십시오. id=modal_1이 문자열을 잘라 데이터의 ID를 얻을 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

간단한 확인 모달 / 팝업 -MVC 5 / 부트 스트랩 3

분류에서Dev

페이지 내용을 보여주는 부트 스트랩 모달 팝업

분류에서Dev

jquery 및 laravel 6.x를 사용하여 부트 스트랩 4 모달의 팝업 편집 양식에서 선택한 항목을 얻는 방법은 무엇입니까?

분류에서Dev

팝업 모달을위한 컨트롤러 및 서비스

분류에서Dev

트위터 부트 스트랩 모달을위한 jQuery 배열?

분류에서Dev

취소 및 제출 버튼이있는 부트 스트랩 모달 팝업 양식, 양식을 클릭 한 버튼에 관계없이 제출

분류에서Dev

부트 스트랩을 사용하여로드 오픈 모델 팝업에?

분류에서Dev

팝업에 간단한 트위터 부트 스트랩 모달 대화 상자를 얻을 수 없습니다

분류에서Dev

IE 및 Mozilla에서 작동하지 않는 부트 스트랩 모달 팝업

분류에서Dev

jquery 및 부트 스트랩을 사용하여 점차적으로 팝업을 표시하는 방법은 무엇입니까?

분류에서Dev

전달 된 값이 angularjs 및 부트 스트랩을 사용하여 팝업 창에 표시되지 않았습니다.

분류에서Dev

부트 스트랩에서 팝업 모달 창을 닫는 방법

분류에서Dev

팝업 창 부트 스트랩 모달을 무작위로 표시

분류에서Dev

PHP echo 및 JQuery .load 내부의 부트 스트랩 모달

분류에서Dev

부트 스트랩 모달 및 외부 URL 사용

분류에서Dev

모달 양식을 제출 한 후 부트 스트랩 팝 오버 표시

분류에서Dev

다른 요소와 동일한 ID를 사용하는 Ajax가있는 부트 스트랩 모달 팝업

분류에서Dev

ajax를 사용하여 데이터베이스에서 데이터를 가져 오는 스프링 MVC의 부트 스트랩 모달 팝업 필드 값에 값을 배치합니다.

분류에서Dev

MVC의 부트 스트랩 모달 팝업에서 textboxFor에서 데이터베이스 값 가져 오기

분류에서Dev

jQuery / JavaScript를 사용하여 iOS 장치를 감지하고 iPhone 및 iPad 전용 부트 스트랩 모달을 숨기는 방법은 무엇입니까?

분류에서Dev

부트 스트랩 팝업에 대한 jquery의 유효성 검사

분류에서Dev

부트 스트랩 팝 오버 및 모달 (마우스 오버 및 클릭)

분류에서Dev

HTML5 및 부트 스트랩 모달 팝업-취소하기 전에 확인하는 방법?

분류에서Dev

JQuery 및 부트 스트랩을 사용하여 선택 옵션에 대한 레이블 텍스트 변경

분류에서Dev

5 초 후 부트 스트랩 모달 창 팝업

분류에서Dev

Yii 1 + 부트 스트랩 모달 팝업 문제

분류에서Dev

Asp 버튼 컨트롤을 클릭 할 때 부트 스트랩 모달 팝업 표시

분류에서Dev

Asp 버튼 컨트롤을 클릭 할 때 부트 스트랩 모달 팝업 표시

분류에서Dev

MVC 5 Razor의 부트 스트랩 모달 : 사용자가 모달에서 계속 버튼을 클릭 할 때 모델 부울 값을 false로 업데이트하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    간단한 확인 모달 / 팝업 -MVC 5 / 부트 스트랩 3

  2. 2

    페이지 내용을 보여주는 부트 스트랩 모달 팝업

  3. 3

    jquery 및 laravel 6.x를 사용하여 부트 스트랩 4 모달의 팝업 편집 양식에서 선택한 항목을 얻는 방법은 무엇입니까?

  4. 4

    팝업 모달을위한 컨트롤러 및 서비스

  5. 5

    트위터 부트 스트랩 모달을위한 jQuery 배열?

  6. 6

    취소 및 제출 버튼이있는 부트 스트랩 모달 팝업 양식, 양식을 클릭 한 버튼에 관계없이 제출

  7. 7

    부트 스트랩을 사용하여로드 오픈 모델 팝업에?

  8. 8

    팝업에 간단한 트위터 부트 스트랩 모달 대화 상자를 얻을 수 없습니다

  9. 9

    IE 및 Mozilla에서 작동하지 않는 부트 스트랩 모달 팝업

  10. 10

    jquery 및 부트 스트랩을 사용하여 점차적으로 팝업을 표시하는 방법은 무엇입니까?

  11. 11

    전달 된 값이 angularjs 및 부트 스트랩을 사용하여 팝업 창에 표시되지 않았습니다.

  12. 12

    부트 스트랩에서 팝업 모달 창을 닫는 방법

  13. 13

    팝업 창 부트 스트랩 모달을 무작위로 표시

  14. 14

    PHP echo 및 JQuery .load 내부의 부트 스트랩 모달

  15. 15

    부트 스트랩 모달 및 외부 URL 사용

  16. 16

    모달 양식을 제출 한 후 부트 스트랩 팝 오버 표시

  17. 17

    다른 요소와 동일한 ID를 사용하는 Ajax가있는 부트 스트랩 모달 팝업

  18. 18

    ajax를 사용하여 데이터베이스에서 데이터를 가져 오는 스프링 MVC의 부트 스트랩 모달 팝업 필드 값에 값을 배치합니다.

  19. 19

    MVC의 부트 스트랩 모달 팝업에서 textboxFor에서 데이터베이스 값 가져 오기

  20. 20

    jQuery / JavaScript를 사용하여 iOS 장치를 감지하고 iPhone 및 iPad 전용 부트 스트랩 모달을 숨기는 방법은 무엇입니까?

  21. 21

    부트 스트랩 팝업에 대한 jquery의 유효성 검사

  22. 22

    부트 스트랩 팝 오버 및 모달 (마우스 오버 및 클릭)

  23. 23

    HTML5 및 부트 스트랩 모달 팝업-취소하기 전에 확인하는 방법?

  24. 24

    JQuery 및 부트 스트랩을 사용하여 선택 옵션에 대한 레이블 텍스트 변경

  25. 25

    5 초 후 부트 스트랩 모달 창 팝업

  26. 26

    Yii 1 + 부트 스트랩 모달 팝업 문제

  27. 27

    Asp 버튼 컨트롤을 클릭 할 때 부트 스트랩 모달 팝업 표시

  28. 28

    Asp 버튼 컨트롤을 클릭 할 때 부트 스트랩 모달 팝업 표시

  29. 29

    MVC 5 Razor의 부트 스트랩 모달 : 사용자가 모달에서 계속 버튼을 클릭 할 때 모델 부울 값을 false로 업데이트하려면 어떻게해야합니까?

뜨겁다태그

보관