2016-12-01 36 views
2

我正在使用Datatable serverside ajax processing.When当我尝试使用导出按钮导出数据表信息时,它只能导出该数据表中的当前呈现数据,而不是完整的原料。然后我搜索了很多,最终找到了一个解决方案。使用Datatable Ajax服务器端处理时,使用服从外部过滤条件导出CSV/PDF

此链接帮助我找出解决办法:https://datatables.net/forums/discussion/5505/server-side-processing-with-export-to-csv-and-pdf

但现在,我的要求是来点点different.How自定义数据表中,出口按钮(最需要按钮是CSV/Excel中/ PDF)为了导出数据表行,根据用户接受的一些过滤器来渲染这些行。

例如:我的数据表中充满了公司员工的信息。同时还有一个额外的过滤器框,用于根据用户的年龄和性别过滤员工,这些字段不会呈现在数据表中。在按下过滤器提交按钮时,数据表用与过滤条件匹配的数据呈现。但是当我尝试导出这些原始数据时,我得到的全部数据都没有应用过滤条件。

那么如何通过这个过滤标准以及Datatable导出按钮点击?

在此先感谢...

回答

0

通过以下链接https://datatables.net/forums/discussion/5505/server-side-processing-with-export-to-csv-and-pdf,我希望你有$.fn.dataTable.TableTools.buttons.download = $.extend();此功能自定义数据表export.Inside,你也有"fnClick": function(button, config) {}这个功能和form object。如果是这样,请按照下面的代码:

 $post_arr_all = Input::all();   
     $post_arr_serachbox = json_decode($post_arr_all['formserachval'],TRUE); 
     $age=(!empty($post_arr_serachbox['age']))?$post_arr_serachbox['age']:'~'; 
     $gender=(!empty($post_arr_serachbox['gender']))?$post_arr_serachbox['gender']:'~'; 

希望这会有所帮助:)

+1

谢谢你这么:

 var input = contentWindow.document.createElement('input'); input.name = 'formserachval'; var myObject = new Object(); if($('#age').val()!='') myObject.age=$('#age').val(); if($('#gender').val()!='') myObject.gender=$('#gender').val(); input.value = JSON.stringify(myObject); form.appendChild(input); contentWindow.document.body.appendChild(form); form.submit(); 

而且从php结束,我们可以通过下面的代码重新获得这些值很多@ CelinVeronicca.Awesome结果我明白了。 – VironiJini