我有这个php
函数,它返回一个CSV
文件。此函数需要我通过url发送的参数$getid
:
$getid = $_GET['id'];
$funcid = $_GET['funcid'];
if ($funcid == 'get_download') {
function get_download($dbmi, $getid) {
$stmt = $dbmi->prepare("CALL spStartDownload(?)");
$stmt->bind_param('i', $getid);
$stmt->execute();
$result = $stmt->get_result();
$fp = fopen('php://output', 'w');
if ($fp && $result) {
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="export.csv"');
fputcsv($fp, $headers, ";");
while($row = $result->fetch_assoc()) {
fputcsv($fp, $row, ";");
}
}
$stmt->close();
echo $fp;
}
}
要发送此参数,我使用此$.ajax()
函数:
function startDownload(id) {
setTimeout(function() {
showLoader('start...');
var funcid = "get_download";
var jqxhr = $.ajax({
type: 'GET',
url: 'functions/getdata.php',
data: {
funcid: funcid,
id: id
},
dataType: 'json'
}).done(function(myData) {
if (myData == null) {
showAlert();
} else {
}
hideLoader();
})
.fail(function() {showAlert();}); //When getJSON request fails
}, 0);
}
我有点卡在这里因为CSV文件不会开始下载但是当我在浏览器中输入带有两个参数(funcid和id)的url时它确实有用..
有什么想法吗?