2011-10-23 34 views
1

使用PHP在HTML頁面的頁腳中打印變量(插入打印分頁符之前),我嘗試使用this solution。實際上,我將包裝在<div>中的打印的php變量設置爲@media print並給它position:fixed; bottom:0;從HTML屏幕打印動態頁眉或頁腳

但是,變量與打印的每個頁面上的每個回顯實例重疊。有沒有一種方法可以使用只顯示當前頁面變量值的方法在頁腳上打印動態變量?

示例代碼:

<html> 
    <head> 
<style type="text/css"> 
.break { 
    page-break-after: always; 
    width:0px; 
    height:0px; 
} 

    @media screen { 
     div.divFooter { 
      display: none; 
     } 
    } 
    @media print { 
     div.divFooter { 
      position: fixed; 
      bottom: 0; 
     } 
    } 
    </style> 
    </head> 
    <body> 

<?php 

$footer = ''; //footer is a dynamic variable whose value is set within a loop that also sets page breaks. 
echo '<div class="divFooter">'.$footer.'</div>'; 
echo '<div class="break"></div>'; 

?> 
    </body> 
    </html> 
+0

你需要一點分開的問題。首先,'$ footer'值打印是否正確?檢查瀏覽器中的原始HTML以確認。如果是這樣,PHP在這裏完全不相關。我想你只是要求一個CSS演示文稿問題,你應該更好地闡明。它看起來像什麼,它應該是什麼樣子? – deceze

+0

你說得對,最好單獨看看CSS和PHP。爲了清楚起見,讓我們假裝$ footer變量輸出「Page xx」,並且每次插入頁面

時增加1。使用上面的解決方案,每個頁面的$ footer輸出都是$ footer文本,每次頁腳被回顯時都會自動堆疊。也就是說,如果要預覽3個打印頁面,則每個打印頁面的打印頁腳都會輸出「頁面」+數字1,2和3,並將它們堆疊在一起。 – Dylanotron

回答

1

我原來的問題是,如果$ footer是動態的頁面到頁面,如果使用CSS的position: fixed; display:none; bottom:0;作爲$ footer的打印樣式是一個可行的解決方案。我的解決辦法是放棄在生成的輸出底部的@media打印樣式,只是輸出我的頁腳每個打印頁,主要有:

.footer { 
     float:right; 
    } 

    <?php 

    $page++; 
    $break = 1; 

    if ($break == 1){ 
     echo '<div class="footer">'.$footer.'</div>'; 
     $break = 0; 
     echo '<hr class="break" />'; 
    } 
    ?> 
0

你可以嘗試使用$ _SERVER超級全局,以確定你是哪個「頁」,並改變基於該頁腳。嘗試使用$_SERVER['REQUEST_URI']

相關問題