无法在Laravel数据表中为csv导出创建自定义文件名

时间:2018-07-10 16:41:54

标签: javascript jquery datatables laravel-5.5

我一直在尝试使用https://yajrabox.com/docs/laravel-datatables/7.0软件包中的 laravel数据表来解决自定义文件名

这是场景,

我有此屏幕快照enter image description here,如您所见,其中有一些按钮,其中之一是 CSV 。从dataTables基础知识来看,当我单击它时,它将使用带有时间戳的默认表ID导出为带有filaname的csv。

对于项目要求,我还需要导出所有货件,这就是为什么上面有“导出”按钮并下拉两个选项的原因,当前过滤器所有货件。并隐藏表格上方的按钮。

这是窍门。

我有用于下拉菜单的代码

<div class="dropdown">
    <button class="btn dropdown-toggle export-csv" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
        Export
    </button>
    <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
        <a class="dropdown-item" href="javascript:void(0)" data-table="{!! $dataTable->getTableAttributes()['id'] !!}" id="exportShipmentCSV_all"> CSV - All Shipments </a>
        <a class="dropdown-item" href="javascript:void(0)" data-table="{!! $dataTable->getTableAttributes()['id'] !!}" id="exportShipmentCSV"> CSV - Current Filter </a>
    </div>
</div>

和用于显示表格的代码

<div class="table-responsive m-t-10" style="min-height: 350px;padding-bottom: 20px;">
    {!! $dataTable->table(['class' => 'table table-condensed dataTableBuilder', 'style' => 'width:100%;']) !!}
</div>

以及使用上面的下拉选项导出的这段代码

$('#exportShipmentCSV').on('click', function(event) {
    event.preventDefault();

    $('.buttons-csv').click();
});

$('#exportShipmentCSV_all').on('click', function (e) {
    e.preventDefault();

    var tableId   = $(this).data('table');
    var filtersId = "#" + tableId + "_filters";

    $(filtersId + ' input').val("");
    $(filtersId + ' select').val("");
    $(filtersId + ' input[type="checkbox"]').val(1);

    window.LaravelDataTables[tableId].draw();

    $('#' + tableId).DataTable().search('').draw();

    $( '.buttons-csv' ).click()
});

用于模拟隐藏按钮csv上的鼠标单击事件的$( '.buttons-csv' ).click()

我的问题,我需要根据选项重命名导出的表,当单击所有货件时,文件名应为 all-shipment-20180711 ,当我单击在当前过滤器上,文件名应为 shipment-filter-20180711

我一直在任何地方进行排序,搜索文档,找到示例,但是我找不到在给定的javascipt / Jquery代码中操纵它的方法。

该项目是用laravel编写的。有人遇到同样的问题吗?您是如何解决的?

0 个答案:

没有答案