繁体   English   中英

单击按钮时打印页面不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM