datatables инициализируют два или более раза относительно вызова функции - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть три поля выбора в последнем вызове события onchange. (Функция clas).В первый раз он запускается и инициализируются таблицы данных, но когда во второй раз запускается событие и снова вызывается функция и datatable, он вызывает ошибку.Я не знаю, как установить формат или как я могу инициализировать данные вне функции.я просто хочу инициализировать таблицы данных на этот раз, но каждый раз вызывать ajax в отношении функции, вот мой код. А также ajax запускается автоматически автоматически с инициализацией данных, но во второй раз вызывается ajax при запуске события и вызове функции

     function clas(src)
    {

    var dataTable = $('#user_data').DataTable({
  "processing":true,
  "serverSide":true,
  "order":[],
   "ajax":{
   url:"requests/add_students/fetch.php",
   type:"POST",
    data: {
          "class_name": 2,
          "class_section": 3,
          "class_session": 4
        }
  },
    dom: 'lBfrtip',
  buttons: [
            {
                extend: 'copyHtml5',
                exportOptions: {
                    columns: [ 0, ':visible' ]
                }
            },
            {
                extend: 'excelHtml5',
                exportOptions: {
                    columns: ':visible'
                }
            },
            {
                extend: 'pdfHtml5',
                exportOptions: {
                    columns: [ 1, 2 ]
                },

            },
            {
                extend: 'csvHtml5',
                exportOptions: {
                    columns: [ 1, 2 ]
                },


            }

        ],
   "lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, "All"] ],
  "columnDefs":[
   {
    "targets":[0, 3, 4],
    "orderable":false,
   },
  ],

 });
    }

1 Ответ

0 голосов
/ 10 февраля 2019

Прежде чем инициализировать его, вам следует проверить наличие данных.Если он уже инициализирован, нет необходимости повторно инициировать его.Проверьте ниже код:

function clas(src) {    
            if (!$.fn.DataTable.isDataTable('#user_data')) {
                var dataTable = $('#user_data').DataTable({
                    "processing":true,
                    "serverSide":true,
                    "order":[],
                    "ajax":{
                        url:"requests/add_students/fetch.php",
                        type:"POST",
                        data: {
                            "class_name": 2,
                            "class_section": 3,
                            "class_session": 4
                        }
                    },
                    dom: 'lBfrtip',
                    buttons: [
                        {
                            extend: 'copyHtml5',
                            exportOptions: {
                                columns: [ 0, ':visible' ]
                            }
                        },
                        {
                            extend: 'excelHtml5',
                            exportOptions: {
                                columns: ':visible'
                            }
                        },
                        {
                            extend: 'pdfHtml5',
                            exportOptions: {
                                columns: [1, 2]
                            },
                        },
                        {
                            extend: 'csvHtml5',
                            exportOptions: {
                                columns: [1, 2]
                            },

                        }
                    ],
                    "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
                    "columnDefs": [
                        {
                            "targets": [0, 3, 4],
                            "orderable": false
                        }
                    ]
                });
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...