我有一个php文件index.php,其中有一个id =“render”的下载按钮。我使用ajax向服务器发送请求。使用的js代码是:
$('#render').click(function(e){
$('html,body').animate({ scrollTop: 0 }, 1000);
var url='render.php';
$.showLoading();
$.ajax({
type: "POST",
url: url,
data: '',
success: function(data){
$.hideLoading();
}
});
});
render.php文件生成包含用户数据的pdf文档。使用mpdf php库生成pdf im。 render.php文件的代码是:
<?php
session_start();
if(!empty($_SESSION['template'])){
$template=$_SESSION['template'];
ob_start();
require_once("resumeTemplates/$template.php");
$template = ob_get_clean();
require_once 'mpdf/vendor/autoload.php';
$mpdf = new mPDF();
$mpdf->WriteHTML($template);
$mpdf->Output("resume.pdf","D"); //sends pdf file to browser
}
?>
问题是当点击下载按钮时页面被重定向到render.php,但我希望用户留在index.php上。我也尝试添加
header("location:index.php");
但该页面未重定向到index.php。它保留在render.php。
下载按钮的html代码是:
<a href="render.php" id="render" class="btn btn-primary btn-round">Download</a>
答案 0 :(得分:0)
$('#render').click(function(e){
$('html,body').animate({ scrollTop: 0 }, 1000);
var url='render.php';
$.showLoading();
$.ajax({
type: "POST",
url: url,
data: '',
success: function(data){
$.hideLoading();
}
});
e.preventDefault();
});
答案 1 :(得分:0)
单击按钮时需要阻止默认事件。像这样更改你的JS代码,应该可以工作:
$('#render').click(function(e){
e.preventDefault() // this prevents page from redirect
$('html,body').animate({ scrollTop: 0 }, 1000);
var url='render.php';
$.showLoading();
$.ajax({
type: "POST",
url: url,
data: '',
success: function(data){
$.hideLoading();
}
});
});
答案 2 :(得分:0)
您需要href="#"
,因为它会在点击
<a href="#" id="render" class="btn btn-primary btn-round">Download</a>