Изменить действие кнопки DataTables - PullRequest
2 голосов
/ 28 марта 2019

Я хочу добавить ключевое слово поиска к URL-адресу элемента действия пользовательской кнопки, чтобы передать ключевое слово в качестве параметра GET.

Я инициализирую таблицу данных следующим образом:

var table = $('#list').DataTable( {
        dom: 'lBfrtip',
    buttons: [
        {
             text: 'Export to PDF',
             className: 'export-to-pdf',
             action: function ( e, dt, button, config ) {
                 window.open('generate_pdf.php?case_id=<?= $case_id? ?>','_blank');
      }

И попытка добавить ключевое слово к URL-адресу с помощью:

// append keyword search values to pdf url
$('#list').on('search.dt', function() {
    var keyword = $('.dataTables_filter input').val();
    //FAILS HERE
    var export_pdf_url = $(".export-to-pdf").attr("href");
    // remove keywords if they already exist
    removeURLParameter(export_pdf_url, 'keyword');
    // append filter value to filtered pdf href
    $(".export-to-pdf").attr("href", export_pdf_url + '&keyword='+keyword);
}); 

Это похоже на ошибку, потому что функция действия фактически не назначает кнопке атрибут href.

Будем очень благодарны за любые предложения о том, как динамически изменять функцию действия или другие подходы.

1 Ответ

1 голос
/ 28 марта 2019

Использовать search() Метод API, который возвращает текущий примененный глобальный поиск при вызове без аргументов.

Затем сгенерируйте URL непосредственно в функции обратного вызова для опции action.

Например:

buttons: [
   {
      text: 'Export to PDF',
      className: 'export-to-pdf',
      action: function ( e, dt, button, config ) {
         var query = dt.search();
         window.open('generate_pdf.php?case_id=<?= $case_id? ?>&keyword=' + encodeURIComponent(query), '_blank');
      }
   }
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...