Ответ 1
Я бы, вероятно, разместил ключевое слово на моем сервере и снова запустил SQL-запрос, отфильтровывая эти результаты, а затем создаю csv/pdf
У меня есть 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);
}
Я бы, вероятно, разместил ключевое слово на моем сервере и снова запустил SQL-запрос, отфильтровывая эти результаты, а затем создаю csv/pdf
Один из способов сделать это - использовать jQuery и сделать ajax-вызов.
Во-первых, дайте таблице идентификатор. Затем, возьмите таблицу и получите свой HTML-код с помощью этого кода:
var html = $('#myCoolTable').html();
Затем сделайте ajax-вызов Laravel для создания PDF файла, проходящего через HTML. Вы можете использовать эту HTML-библиотеку в формате PDF: http://wkhtmltopdf.org/
Затем вы должны вернуть PDF файл с помощью точной таблицы на экране (с любыми фильтрами и т.д.).
В качестве побочного элемента вы также можете добавить свой CSS в HTML, чтобы предоставить библиотеке PDF, и даже будет стилизовать таблицу одинаково!
Надеюсь, что это поможет.