修改数据表按钮操作

时间:2019-03-28 01:15:55

标签: javascript php jquery datatables

我想将搜索关键字添加到自定义按钮操作元素的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 个答案:

答案 0 :(得分:1)

使用search() API方法,当不带参数调用时,该方法将返回当前应用的全局搜索。

然后直接在回调函数中为action选项生成URL。

例如:

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');
      }
   }
],