Экспорт CSV или PDF на основе Datatables Laravel 4

У меня есть datatables, который содержит данные, полученные из базы данных. Когда я ввожу некоторые ключевые слова в текстовое поле поиска (текстовое поле поиска генерируется с помощью datatables), результат таблицы будет изменен. Это хорошо. Но когда я нажимаю export to csv или pdf, результат в csv или pdf будет извлекаться из базы данных вместо datatables.

Как экспортировать в csv/pdf на основе плагина datatables с использованием laravel?

//datatable plugins

<link href="plugins/datatables/dataTables.bootstrap.css" rel="stylesheet" type="text/css" />
<script src="plugins/datatables/jquery.dataTables.min.js" type="text/javascript"></script>
<script src="plugins/datatables/dataTables.bootstrap.min.js" type="text/javascript"></script>

//PHP

public function sales_csv(){    

    // columns      
    $arrSelectFields = array(
        -- columns --
    );

    // query
    -- sql queries --

    // passing the columns which I want from the result set. Useful when we have not selected required fields
    $arrColumns = $arrSelectFields;

    // define the first row which will come as the first row in the csv
    $arrFirstRow = $arrSelectFields;

    // building the options array
    $options = array(
        'columns' => $arrColumns,
        'firstRow' => $arrFirstRow,
    );
    // creating the Files object from the Utility package.
    $Files = new Files;
    return $Files->convertToReportsSalesCSV($query, $options);
}

Ответы

Ответ 1

Я бы, вероятно, разместил ключевое слово на моем сервере и снова запустил SQL-запрос, отфильтровывая эти результаты, а затем создаю csv/pdf

Ответ 2

Один из способов сделать это - использовать jQuery и сделать ajax-вызов.

Во-первых, дайте таблице идентификатор. Затем, возьмите таблицу и получите свой HTML-код с помощью этого кода:

var html = $('#myCoolTable').html();

Затем сделайте ajax-вызов Laravel для создания PDF файла, проходящего через HTML. Вы можете использовать эту HTML-библиотеку в формате PDF: http://wkhtmltopdf.org/

Затем вы должны вернуть PDF файл с помощью точной таблицы на экране (с любыми фильтрами и т.д.).

В качестве побочного элемента вы также можете добавить свой CSS в HTML, чтобы предоставить библиотеке PDF, и даже будет стилизовать таблицу одинаково!

Надеюсь, что это поможет.