【发布时间】:2020-01-23 07:30:55
【问题描述】:
我想生成一个带有动态文件名的 csv 文件,该文件名来自我使用 ajax jquery 请求获得的值。这些值将用作我生成的 csv 文件的文件名。我的程序不生成 csv 文件。生成csv文件应该怎么做?
我是 php 的新手,尤其是 AJAX 和 Jquery,所以我仍然对 AJAX 请求的工作原理有些困惑。
我正在使用免费试用版的 Sublime IDE 和 localhost 的 php。程序通过警告框显示 csv 文件的内容,但不会生成 csv 文件。
这是我的 jquery ajax 请求文件:
var selectedLanguage = $('#selectLanguage').val();
var length;
length = selectedLanguage.length;
for (var i = 0; i < length; i++)
{
var selectedLanguage = $('#selectLanguage').val();
$.ajax({
crossDomain: true,
async: false,
url: "downloadFile.php",
type: "GET",
data: {"seLang": selectedLanguage[i]},
success: function(data)
{
alert(data);
location.reload();
}
});
}
这是我的 downloadFile.php 代码:
<?php
$id="";
if(isset($_GET['seLang'])){
$id = $_GET['seLang'];
$filename = "File_".$id.".csv";
$f = fopen('php://memory', 'w');
//set headers for column
$fields = array('Content1', 'Content2', 'Content3','Content4');
fputcsv($f, $fields, ',');
fseek($f, 0);
header('Content-Encoding: UTF-8');
header('Content-type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment; filename="' . $filename . '";');
fpassthru($f);
}
else
{
echo "<script type='text/javascript'>alert('Empty');</script>";
}
?>
编辑 1: 感谢 Prvn 和 Sunday Johnson 提供的帮助。虽然,我发现了实际的问题。我从本网站的另一篇文章中读到,无法使用 AJAX 下载生成的 csv 文件。我还能做些什么来下载 csv 文件?
【问题讨论】:
标签: javascript php jquery ajax csv