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