不需要的网页重定向

时间:2017-10-06 09:21:38

标签: javascript php jquery ajax

我有一个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>

3 个答案:

答案 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>