2017-10-06 67 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(); 
      } 
     }); 
    });