fputcsv via js post 调用未下载
fputcsv via js post call not downloading
我正在尝试将 JS link POST 转换为另一个 php 文件以进行 csv 下载。一切都在正确进行 - 除了 csv 下载。我可以在 chrome 的 DevTools 中看到 csv 数据,但是 csv 没有下载。
link 有目标 _blank..
我不知道把 _blank 放在 JS 的什么地方。
我知道我可以使用 GET(无需 JS)轻松完成此操作,但我想使用 POST。
PHP:
<a id="data-download" target="_blank" data-toggle="tooltip" data-placement="left" title="Export to Excel">
JS:
$("#data-download").on("click", function(e){
$.post("XL.php", { e: "<?php echo $e?>", time: "2pm" } ); //Your values here..
});
表格处理器:
$filename = "Ensemble-D$div$ensabbr.csv";
$fp = fopen('php://output', 'w');
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
#header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);
// output the column headings
fputcsv($fp, array("filename.csv"));
fputcsv($fp, array('column','headings'));
$query = "SELECT a.fields, b.fields FROM entries a, other b ORDER BY something";
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_row($result)) {
fputcsv($fp, $row);
}
要使用 POST 并下载文件,您可以做的一件事是创建一个 html 表单并让您的 link 提交它。
<form action=XL.php method=post id=export target=_blank>
<input type=hidden name=e value=...etc
</form>
$("#data-download").on("click", function(e){ $('#export').submit() });
您甚至可以在 JavaScript 中创建表单,而不必担心 ID 重复
我正在尝试将 JS link POST 转换为另一个 php 文件以进行 csv 下载。一切都在正确进行 - 除了 csv 下载。我可以在 chrome 的 DevTools 中看到 csv 数据,但是 csv 没有下载。
link 有目标 _blank.. 我不知道把 _blank 放在 JS 的什么地方。
我知道我可以使用 GET(无需 JS)轻松完成此操作,但我想使用 POST。
PHP:
<a id="data-download" target="_blank" data-toggle="tooltip" data-placement="left" title="Export to Excel">
JS:
$("#data-download").on("click", function(e){
$.post("XL.php", { e: "<?php echo $e?>", time: "2pm" } ); //Your values here..
});
表格处理器:
$filename = "Ensemble-D$div$ensabbr.csv";
$fp = fopen('php://output', 'w');
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
#header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);
// output the column headings
fputcsv($fp, array("filename.csv"));
fputcsv($fp, array('column','headings'));
$query = "SELECT a.fields, b.fields FROM entries a, other b ORDER BY something";
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_row($result)) {
fputcsv($fp, $row);
}
要使用 POST 并下载文件,您可以做的一件事是创建一个 html 表单并让您的 link 提交它。
<form action=XL.php method=post id=export target=_blank>
<input type=hidden name=e value=...etc
</form>
$("#data-download").on("click", function(e){ $('#export').submit() });
您甚至可以在 JavaScript 中创建表单,而不必担心 ID 重复