0
我试图为我的表实现excel导出功能。我发送表单数据与Ajax和PHP脚本创建文件与此数据,然后什么都没有。我想要ajax返回用php创建的文件。这是我的代码。使用php脚本创建的AJAX返回文件
$('body').on('click', '#excel', function() {
var veri = $('form[method="get"]').serializeArray();
veri['action'] = 'userexcel';
jQuery.ajax({
type: "POST",
url: <?php echo '"' . admin_url('admin-ajax.php') . '"';?>,
data: veri,
success: function(data){
alert(data);
}
});
return false;
});
而且我的PHP函数
function exportExcel($filename='ExportExcel',$columns=array(),$data=array(),$replaceDotCol=array()){
header('Content-Encoding: UTF-8');
header('Content-Type: text/plain; charset=utf-8');
header("Content-disposition: attachment; filename=".$filename.".xls");
echo "\xEF\xBB\xBF"; // UTF-8 BOM
$say=count($columns);
echo '<table border="1"><tr>';
foreach($columns as $v){
echo '<th style="background-color:#FFA500">'.trim($v).'</th>';
}
echo '</tr>';
foreach($data as $val){
echo '<tr>';
for($i=0; $i < $say; $i++){
if(in_array($i,$replaceDotCol)){
echo '<td>'.str_replace('.',',',$val[$i]).'</td>';
}else{
echo '<td>'.$val[$i].'</td>';
}
}
echo '</tr>';
}
}
没有必要为此使用ajax。发送适当的标题下载将迫使你留在同一页面。 –
这是一个WordPress站点,因此出于安全原因使用wp的ajax函数会更好。 –
安全原因?无论哪种方式,这是一个HTTP请求...大声笑 – epascarello