Я использую отличный плагин fileDownload Джона Калвинера для создания сообщения «пожалуйста, подождите», когда мой пользователь решит сгенерировать отчет.
Когда пользователь щелкает ссылку, я отправляю ajax-запрос на мой PHP, который создает 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 обновляется. Однако плагин не предлагает пользователю загрузить его.
Спасибо!