[英]Print page not working when button click
我创建了一个PHP页面来打印我的项目的发票。 保存发票后,我需要自动打印此页面。 我使用jquery $ .post方法打开print.php页面,
保存发票按钮
$.post("print.php",{
desc: $desc,
}, function(data,success){
alert(success);
});
我在print.php页面中使用了javascript window.onload = function(){window.print();}
。 但它不起作用,什么也没打印。 然后我在浏览器中打开print.php页面,它是按我的意愿打印的。我不需要重定向到print.php页面。 我的代码有什么问题吗? 如何打印此页面?
编辑
我不需要保存或从$.post
获取结果。 我只需要打印带有desc
数据的发票。
问题:该页面未加载,因此window.onload将不起作用,这是因为您使用ajax发布了。 解决方案:尝试使用表单过帐发票详细信息。
尝试在post()
之后链接一个done()
post()
。
$.post( "print.php", { desc: invoiceData })
.done(function( data ) {
alert( "Success: " + data );
});
小心!
从通知要求的结果print.php
使用done()
的,而不是success()
因为: jqXHR.success()
jqXHR.error()
和jqXHR.complete()
回调方法也会被删除的jQuery 3.0。 您可以使用jqXHR.done()
, jqXHR.fail()
和jqXHR.always()
代替。
如果您只想打印ajax的响应,请使用以下代码。
$.post("print.php",{
desc: $desc,
}, function(data,success){
alert(success);
w=window.open(null, 'Print_Page', 'scrollbars=yes');
w.document.write(data); //where data = response of print.php, the invoice
w.document.close();
w.print();
}
);
注意 :我假设如果我在浏览器中打开print.php,那么我将以一种人类可读的方式获取发票,无论是原始文本还是html,只要在浏览器中打开print.php就会看到,它将以它的形式打印出来是。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.