Передать переменную ID в функцию инициализации Datatable jquery - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблема с передачей переменной ID в функции инициализации Datatable. То, что я хочу:

Нажатие на ссылку

<a href="#" data-id="' + data.id + '" data-toggle="modal" data-target="#ipvpn_show_members">Show</a>

Модальное окно открывается, и там у меня есть данные. И я хочу передать data-id данные ajax.data. Я пытался сделать так:

        "data": function ( d ){
             d.id = $(this).data('id');
    }

без удачи.

Вот Jquery код для ввода данных в формате init

    var member_table = $('#member_table').DataTable({
    "processing": true,
    "bFilter": false,
    "bPaginate": false,
    "bSort" : false,
    "bInfo" : false,
    "ajax": {
        "url": "/get_member_data",
        "dataType": "json",
        "dataSrc": "data",
        "contentType": "application/json",
        "data": function ( d ){
            d.id = $(this).data('id');

        }
    },
    "columns": [
        {"data": "vrf_name"},
        {"data": "primary_rt"},
        {"data": "ipvpn_rt"},
    ]

});

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

добавить класс в ссылку для создания динамической c функции

   <a href="#" data-id="' + data.id + '" data-toggle="modal" data-target="#ipvpn_show_members" class="my_modal">Show</a>

добавить событие в модальное шоу,

$(document).on('show.bs.modal', '.my_modal', function (e) {
    let id =  $(this).data('id');
    // here is your datatable code and use id in ajax
});

PS: если в случае модель не отображается вверх, вы можете запустить его вручную, используя $ ('# ipvpn_show_members'). modal ('show')

0 голосов
/ 23 апреля 2020

Решено путем перезагрузки ajax после инициализации id var

        $('#ipvpn_show_members').on('show.bs.modal', function(e) {
        var data = $(e.relatedTarget).data();
        member_table.ajax.url("\get_member_data?id="+data.id).load();
    });
...