AJAX 응답에서 DataTable을 다시 초기화할 수 없습니다.

사용자9437856

선택 드롭다운과 제출 버튼이 있습니다. 사용자는 선택 드롭다운에서 선택하고 제출합니다. 그런 다음 ajax를 호출합니다. 데이터를 찾으면 해당 데이터가 데이터 테이블에 표시됩니다. 그렇지 않으면 "데이터를 찾을 수 없습니다"라는 경고가 표시됩니다.

위의 시나리오는 완벽하게 작동하지만 문제는,

선택 드롭다운에서 두 번째로 선택하면 내 ajax가 처음 작동할 때 오류가 발생합니다.

DataTables warning: table id=report_list - Cannot reinitialise DataTable. For more information about this error, please see http://datatables.net/tn/3.

나는 시도 "bDestroy": true또는 $("#report_list").dataTable().fnDestroy();하지만 perflectly 작동하지 않습니다. 오류가 발생하지만 내 응답 데이터가 표시되지 않습니다.

$("form[name='reports']").validate({
  rules: {
    report_type:{required:true}

  },
   // errorElement: 'div',
    submitHandler: function(form) {
        var report_type = $('#report_type').val();
        var fromDate = $('#fromDate').val();
        var toDate = $('#toDate').val(); 
        $.ajax({
            url: baseUrl + "/Reports_control/Get_reports",
            method: "POST",
            //dataType: "json", 
            data: {report_type: report_type,fromDate:fromDate,toDate:toDate},
            success: function(response) {
            $('.search_record tbody tr').hide();
                var data = JSON.parse(response);
          if (data.status === 'error')
             {
                $('.report').hide();
                alert(data.msg);

              } 

    if (data.status === 'success') {
       if ( $.fn.DataTable.isDataTable( '#report_list' ) ) {
    $('#report_list').destroy();
}
      //alert(data);
      $('.company_report').show();
                var trHTML = '';
                    $.each(data.records, function (i, o){
                    trHTML += '<tr><td>'+o.Sr_no+
                              '</td><td>' + o.cutomer_name +
                              '</td><td>' + o.o_product_brandname +
                              '</td><td>' + o.o_product_qty +
                              '</td><td>'+ o.o_order_no +
                              '</td><td>'+ o.created_by +
                              '</td><td>'+ o.order_status +
                              '</td><td>'+ o.action_order_status +
                              '</td></tr>';
                          });

                  $('.search_record tbody').append(trHTML);
                  $('#report_list').DataTable({
                      language: {
                            sLengthMenu: "Show _MENU_",// remove entries text
                            searchPlaceholder: "Search",
                            search:""
                          },
                        "ordering": false,  // remove sorting effect from header 
                      });
           }
         }
       });
}
    });

이 문제에서 저를 도와주시겠습니까?

로히트 미탈

변수를 생성하고 해당 변수에 데이터 테이블을 할당해야 합니다. 아래 코드를 확인하십시오.

<script>
    var reportListDatatable = '';
    $("form[name='reports']").validate({
        rules: {
            report_type: {required: true}
        },
        submitHandler: function (form) {
            var report_type = $('#report_type').val();
            var fromDate = $('#fromDate').val();
            var toDate = $('#toDate').val();
            $.ajax({
                url: baseUrl + "/Reports_control/Get_reports",
                method: "POST",
                //dataType: "json", 
                data: {report_type: report_type, fromDate: fromDate, toDate: toDate},
                success: function (response) {
                    $('.search_record tbody tr').hide();
                    var data = JSON.parse(response);
                    if (data.status === 'error')
                    {
                        $('.report').hide();
                        alert(data.msg);

                    }

                    if (data.status === 'success') {


                        if ($.fn.DataTable.isDataTable('#report_list')) {
                            $('#report_list').dataTable().fnClearTable();
                            $('#report_list').dataTable().fnDestroy();
                        }



                        $('.company_report').show();
                        var trHTML = '';
                        $.each(data.records, function (i, o) {
                            trHTML += '<tr><td>' + o.Sr_no +
                                    '</td><td>' + o.cutomer_name +
                                    '</td><td>' + o.o_product_brandname +
                                    '</td><td>' + o.o_product_qty +
                                    '</td><td>' + o.o_order_no +
                                    '</td><td>' + o.created_by +
                                    '</td><td>' + o.order_status +
                                    '</td><td>' + o.action_order_status +
                                    '</td></tr>';
                        });

                        $('.search_record tbody').append(trHTML);
                        reportListDatatable = $('#report_list').DataTable({
                            language: {
                                sLengthMenu: "Show _MENU_", // remove entries text
                                searchPlaceholder: "Search",
                                search: ""
                            },
                            "ordering": false, // remove sorting effect from header 
                        });
                    }
                }
            });
        }
    });
</script>

도움이 되기를 바랍니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

AJAX 응답에서 DataTable을 다시 초기화하는 방법

fullcalendar- AJAX 호출에서 JSON 응답을 캐시 할 수 없습니다.

datatable jquery DataTable을 다시 초기화 할 수 없습니다.

DataTables 경고 : DataTable을 다시 초기화 할 수 없습니다.

jquery 응답 후 dataTable을 다시로드 할 수 없습니다.

MVC 앱에서 초기화 할 DataTable을 가져올 수 없습니다.

Angular 5 Datatables에서 오류 발생 : DataTable을 다시 초기화 할 수 없습니다.

AJAX에서 DataTable을 빌드 할 수 없습니다.

XMLHttpRequest에서 응답을 기록할 수 없습니다.

DataTable을 초기화 할 수 없습니다.

Android에서 Parse 용 Mandrill을 초기화 할 수 없습니다.

Julia에서 큰 행렬을 초기화 할 수 없습니다.

초기화에서 유형을 변환 할 수 없습니다.

함수에서 응답을 반환 할 수 없습니다.

HTML 응답에서 속성을 추출 할 수 없습니다.

JAVA : 루프에서 응답을 반환 할 수 없습니다.

redux-thunk에서 응답을 반환 할 수 없습니다.

RestTemplate에서 응답을 추출 할 수 없습니다.

promise.all에서 응답을 검색 할 수 없습니다.

초기화 후 DataGrid에 행을 추가 할 수 없습니다.

yii2의 ajax 호출에서 응답을받을 수 없습니다.

Angular가 배열 속성에서 http 응답을 푸시 할 수 없습니다.

Ajax 요청에서 JSON 응답을 가져올 수 없습니다.

Ajax 응답에서 특정 숨겨진 필드를 찾을 수 없습니다.

AJAX 응답에서 HTML 선택 값을 가져올 수 없습니다.

jquery는 ajax 응답을 경고 할 수 없습니다.

AJAX로 동일한 페이지에 게시 할 때 올바른 응답을받을 수 없습니다.

Asynctask는 서버 응답을 표시 할 수 없습니다.

listview에서 json 응답을 역 직렬화 할 수 없습니다.

TOP 리스트

  1. 1

    Ionic 2 로더가 적시에 표시되지 않음

  2. 2

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  3. 3

    std :: regex의 일관성없는 동작

  4. 4

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  5. 5

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  6. 6

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    상황에 맞는 메뉴 색상

  8. 8

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  11. 11

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  12. 12

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  13. 13

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    복사 / 붙여 넣기 비활성화

  16. 16

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  17. 17

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  18. 18

    SQL Server-현명한 데이터 문제 받기

  19. 19

    Seaborn에서 축 제목 숨기기

  20. 20

    ArrayBufferLike의 typescript 정의의 깊은 의미

  21. 21

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

뜨겁다태그

보관