2011-06-21 63 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