我有一个搜索屏幕,用户可以在其中自定义为报告检索的数据。这些参数传递给数据表,然后通过ajax检索报告。
用于ajax加载的网址可能类似于report.php?batch=1&id=5
。
我想要做的是提供一个允许用户下载报告结果的链接。为此,我想向服务器提交相同的请求,但之后我将视图发送到CSV而不是HTML。为此,我想在网址上添加一个额外的变量,因此它会出现report.php?batch=1&id=5&output=download
之类的内容。
我尝试了几个approches来添加该变量,两者都没有成功。仅供参考,我已将数据表配置分配给名为fixTheHeader的变量。
1)尝试使用fnServerParams设置值。 fixTheHeader.push({"output":"download"});
然后使用fixTheHeader.fnReloadAjax();
重新加载表格。虽然这不会产生任何错误,但它也没有将变量添加到url。
2)使用
检索设置为ajax源URL的url var source = $(fixTheHeader'.$classNameToAppend.').parents(".dataTables_wrapper").find("table:first").dataTable().fnSettings().oInit.sAjaxSource;
然后将&output=download
追加到source
并重定向窗口。这种方法的问题是?batch=1&id=5
不再是网址的一部分。
我并不挑剔什么方法使它工作,但是,在数据表中有没有办法获取url +变量,添加一个额外的变量,然后重新提交到服务器而不重新加载页面?我不想用参数对这个url进行硬编码,因为我希望这个代码可以用于多个报告。我希望这是有道理的。
我正在使用当前版本(1.9.4)的数据表(http://datatables.net/)
答案 0 :(得分:0)
您可以使用 TableTools extra将下载链接(csv,pdf)添加到任何dataTable。
使用TableTools初始化示例:
$('#example').dataTable( {
"sDom": 'T<"clear">lfrtip',
"oTableTools": {
"sSwfPath": "/swf/copy_csv_xls_pdf.swf"
}
} );