ユーザーがレポートの生成を選択したときに、「しばらくお待ちください」というメッセージを生成するために、John Culviner の優れた fileDownload プラグインを使用しています。
ユーザーがリンクをクリックすると、PHP に ajax リクエストが送信され、サーバー上で PDF が生成されます。その時点で、fileDownload プラグインの成功ハンドラーのリンクを更新しようとしています。
私はこれに間違って近づいているかもしれませんが、これが私のコードです - どんな助けも大歓迎です。
$("body").on("click","##pdfLink", function(e){
$.fileDownload($(this).attr('href'), {
preparingMessageHtml: "Preparing your report, please wait...",
failMessageHtml: "There was a problem generating your report, please try again."
});
// Build our data string.
var strData = {method: "createPDF"};
// Send a request to build our XL file.
$.ajax({
url: '/pdf.php',
data: strData,
type: 'get',
dataType: 'json',
success: function(data) {
alert(data);
$("##pdfLink").attr("href","/pdf/"+data);
},
error: function(e) {
console.log(e);
}
});
return false;
e.preventDefault();
})
この時点で、リンクをクリックすると、モーダルが正しく表示され、「お待ちください」というメッセージが表示されます。私のファイルはサーバー上に構築され (私の成功ハンドラーのアラートで確認されました)、私の HREF は更新されます。ただし、プラグインはユーザーにダウンロードを要求しません。
ありがとう!