我有一个数据表,其中包含从数据库中检索的数据。当我在搜索文本框中输入一些关键字时(搜索文本框由数据表生成),表格的结果将会发生变化。这很好。但是当我单击导出到csv或pdf时,将从数据库而不是数据表中检索csv或pdf中的结果。
如何使用laravel基于datatables插件导出到csv / pdf?
// 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);
}
答案 0 :(得分:7)
我可能会将关键字发布到我的服务器并再次运行sql查询过滤这些结果,然后创建csv / pdf
答案 1 :(得分:4)
你可以做的一种方法是使用jQuery并进行ajax调用。
首先,给表一个ID。接下来,获取表本身并使用以下代码获取其HTML:
var html = $('#myCoolTable').html();
然后对Laravel进行ajax调用以生成通过HTML的PDF。您可以使用此HTML到PDF库:http://wkhtmltopdf.org/
然后您应该使用屏幕上的确切表格(使用任何过滤器等)取回PDF。
作为旁注,您还可以将CSS添加到HTML中以提供给PDF库,它甚至可以将表格设置为相同的样式!
希望这有帮助。