2017-10-06 68 views
1

我有一个php文件index.php,其中有一个id =“render”的下载按钮。我使用ajax发送请求到服务器。使用js代码IM是:不需要的页面重定向

$('#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

它是一个提交按钮?如果是的话,你需要使用'preventdefault();' –

+0

你会显示你的html代码是按钮吗? –

+0

感谢问题解决。主要问题是按钮的html代码。在那里我用href =“#”替换了href =“render.php”。之前无法找到此解决方案,因为本地服务器上的所有工作都正常 – Mayank

回答

0

需要href="#",因为它会之前重定向点击

<a href="#" id="render" class="btn btn-primary btn-round">Download</a> 
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(); 
    }); 
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(); 
      } 
     }); 
    });