2015-05-04 40 views
0

我的php文件:example_061.php創建PDF返回,一切正常。呼叫php文件,其中使用jQuery AJAX函數返回PDF

現在我想打電話給使用jQuery AJAX該文件在我的屏幕讓這一點,我嘗試:

$("#proba").click(function() { 
    //in here we can do the ajax after validating the field isn't empty. 
    $.ajax({ 
    url: "tcpdf/examples/example_061.php", 
    type: "POST", 
    async: true, 
    data: { 
     ime: $("#ime").val(), 
     pozicija: $("#pozicija").val(), 
     jmbg: $("#jmbg").val() 
    }, //your form data to post goes here as a json object 
    dataType: "html", 
    success: function(response) { 
     window.open('example_061.pdf'); 
    }, 
    });   
}); 

一切都很好,所以成功的功能工作的我收到警告信息,但我沒有得到PDF文件作爲下載或在屏幕上。我該怎麼做?

+0

在PHP文件的末尾我有:/ /關閉和輸出PDF文件 return $ pdf-> Output('example_061.pdf','I'); –

+0

有很多* Ajax-like下載*在那裏...這是我自己的例子:https://github.com/gasparesganga/jquery-ajax-downloader – Eggplant

+0

你正在使用哪個PDF庫?你有什麼選擇 - >輸出()? –

回答

2

您不需要使用AJAX下載文件。如果設置了content-disposition標題,它將被下載並且當前頁面將不會被重新加載。

只需添加到您的PHP腳本,創建PDF:

header('Content-Disposition: attachment; filename=' . $MyFileName); 

,而不是AJAX和,使用常規的錨標記鏈接:

<a href="tcpdf/examples/example_061.php">Download</a> 

正如有人在評論中指出,如果你需要發佈你仍然可以使用一個簡單的形式具有相同的效果:

<form method="POST" ACTION="tcpdf/examples/example_061.php"> 
<input type="hidden" name="myPostItem" value="My POSt VALUE" /> 
<input type="submit" value="download"> 
</form> 
+1

對不起,但我需要發送一些數據到php文件來創建PDF我需要...所以我需要使用ajax ... –

+0

@milemilicmile爲什麼你不能使用GET而不是POST? –

+1

@milemilicmile,即使它最終輸出PDF,您仍然可以對example_061.php執行常規POST。沒有必要使用AJAX ... –