我提交一个表单使用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文件。
发布于 2014-03-04 05:55:17
看起来您的“请稍候”在加载目录中...不是那个等待的div..。$('#load').hide(0);
发布于 2014-03-04 05:58:50
您的等待消息位于目录中,id为load,而不是 waiting 。您应该更改以下内容
<div id="load" style="display:none;">Please wait.</div>至
<div id="waiting" style="display:none;">Please wait.</div>https://stackoverflow.com/questions/22158258
复制相似问题