我使用jquery $ .post将HTML表格数据作为json发布到服务器端,用于将整个表格数据写入csv文件。但这并没有输出csv作为用户可下载。
我想弹出csv文件(通常在我们下载文件时发生。你知道csv的SAVE或OPEN框)
客户端代码
//selectedData is having the data as json
$.post('ajax/csv_download.php', {
selectedData: JSON.stringify(selectedData)
}, function(html){ });
服务器端代码
global $fh;
$fh = @fopen( 'php://output', 'w' );
$post_data = json_decode($_POST['selectedData']);
foreach ($post_data as $arr)
{
$val1 = $arr->val1 ;
$val2 = $arr->val2 ;
$val3 = $arr->val3 ;
$val4 = $arr->val4 ;
$val5 = $arr->val5 ;
$out = array($val1,$val2,$val3,$val4,$val5);
fputcsv($fh, $out);
}
答案 0 :(得分:0)
在php中将'Content-Type'设置为'text / plain'之后,您想要将CSV文件的内容写回浏览器。根据Web浏览器的配置方式,它将提示用户保存/打开文件。
<?php
$content="name,age,height,weight,gender";
$file="persons.csv";
header("Content-Type: text/plain");
header("Content-disposition: attachment; filename=$file");
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
echo "$content";
?>