问题::我正在开发一个插件。此插件在WP数据库中创建自定义表。如何使用Ajax从该表导出数据?
我在哪儿?:我创建了钩子和处理程序。我实际上可以获取数据。请参阅下面的代码。
add_action ( 'wp_ajax_nopriv_exportcsv', 'exprot_to_csv' );
add_action ( 'wp_ajax_exportcsv', 'exprot_to_csv' );
<script type="text/javascript">
jQuery("#export-csv").on("click",function(e){
jQuery.ajax({
type: "POST",
url: ajaxurl,
data: {"action":"exportcsv"},
success: function(response){alert(response);}
})
});</script>
function exprot_to_csv(){
global $wpdb;
$table_prefix = $wpdb->prefix;
$table = $table_prefix.'my_custom_table';
$result = $wpdb->get_results("SELECT * FROM ".$table."");
foreach ($result as $row) {
$output .="\n";
$output .='"'.$row->post_id.'",';
}
$output .="\n";
$file = "custom_table";
$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
echo $output;
exit;
}
在警告框中,我按预期获得逗号分隔的帖子ID。但我不确定如何继续前进。我的意思是如何处理此响应并提示用户保存/下载文件。
任何帮助?
答案 0 :(得分:0)
您接近...!我遇到了同样的问题,尝试了类似的解决方案。
签出此问题: Download file through an ajax call php
还有这个具体答案: https://stackoverflow.com/a/11452917 确保查看达里奥的答案
摘要-
通过文件传输
提供文件服务'header('Content-Description: File Transfer');'
这在WordPress中有效。使用Admin-Ajax。 干杯