2011-06-21 62 views
1

我想要一个按钮“打印所有报告”,它将一次打印5个不同的URL。有没有办法做到这一点,而不使它重定向到一个新的页面,我将不得不使用所有的代码再次创建每个URL和window.print()它?打印几个不同的页面PHP

回答

1

我觉得从各个角度看,你所暴露的方式都很好。有一个不同的页面可以打印5个URL的所有代码,并调用window.print()函数来打开打印对话框。

如果没有,您将不得不使用ajax来获取所有5个不同URL的输出,并将其转储到用户单击按钮的同一页面上。但是,我会反对这种方法,因为它失去了回到页面的能力,并且如果用户书签,用户可能会被欺骗。

+0

发送页面进行打印后,可以删除新内容。 – mihsathe

0

仅使用浏览器,您可以编写一个脚本,它可以从5个URL中生成1个URL,并使用它将html与每个URL分开。

<DIV style="page-break-after:always"></DIV> 

然后用户可以打印出您的1个网址,并有5个网址的信息。

+0

我觉得你没有正确理解,他一次只想看1页,但在每一页上他都想要一个按钮来打印所有的内容。 – Vadiklk

1

那么,如果这就是你想要的,你可以将所有五页的AJAX内容合并到一个页面中,一旦完成准备就可以打印单页。如果你使用jQuery,它看起来就像这样:

(
    function(){ 
    $.ajax({url:"url1", success:function(resp){ 
    $("#mydiv").html(resp); 
    //make other similar calls for rest of the pages 
    //and in your last callback, call window.print()  
    }); 
    })(); 

即使你不想使用jQuery,您可以用原始的ajax做。

+0

这是一个解决方案,但这意味着从用户点击打印按钮的那一刻起,他将不得不等待直到它加载?大多数用户会认为他们没有点击,并会再次点击或点击。关于在他有机会点击之前加载它,它不会很好,因为每个页面加载速度要慢5倍+我的基本解决方案更好。 – Vadiklk

+0

这种方法显然会最大限度地减少您的代码量。关于用户感到困惑,是的,这可能是一个问题。但是,有很多技术可以显示外观漂亮的“加载...”对话框,直到它加载以避免混淆。 – mihsathe