我使用php和ajax提交表单。表单将HTML输出发送到创建pdf的其他页面。提交工作正常,但在创建pdf后,我似乎无法隐藏等待消息。我尝试了几种不同的方法但没有成功。
以下是表单代码:
<div id="message" style="display: none;"></div>
<div id="waiting" style="display: none;">Please wait</div>
<form action="/export-to-pdf" method="POST" id="pdfform" >
<input type="hidden" name="var1" value="<?=$var1;?>">
<input type="hidden" name="var2" value="<?=$var2;?>">
<input type="submit" id="pdfsubmit" name="pdfsubmit" value="Submit">
</form>
以下是创建pdf的页面中的重要代码:
$pdf->Output('form.pdf', 'D');
$return = array();
$return['success'] = "success";
echo json_encode($return);
这是脚本:
$(document).ready(function(){
$('#pdfsubmit').click(function() {
$('#waiting').show(500);
$('#pdfform').hide(0);
$('#message').hide(0);
$.ajax({
type : 'POST',
dataType : 'jsonp',
url : '/export-to-pdf',
data: serialize(),
success : function(response){
if (response.success == 'success') {
$('#waiting').hide(500);
$('#message').removeClass().addClass((data.error === true) ? 'error' : 'success')
.text(data.msg).show(500);
if (data.error === true)
$('#pdfform').show(500);
}
}
,
error : function(XMLHttpRequest, textStatus, errorThrown) {
$('#waiting').hide(500);
$('#message').removeClass().addClass('error')
.text('There was an error.').show(500);
$('#pdfform').show(500);
}
});
return false;
});
});
一旦pdf准备好下载,就会显示“另存为”对话框,但是ajax消息仍会出现在屏幕上,永远不会消失。我正在使用TCPDF类来构建pdf文件。
答案 0 :(得分:0)
看起来你的等待是在装载div ...而不是等待div ... $( '#负载')隐藏(0);
答案 1 :(得分:0)
您的等待消息位于div 加载而非等待的div中。您应该更改以下
<div id="load" style="display:none;">Please wait.</div>
到
<div id="waiting" style="display:none;">Please wait.</div>