2013-07-31 109 views
6

我正在使用php mysql的表單。所以在我的頁面上,有一種形式,下面我見表這種形式的數據format.now我只想打印表結構就是爲什麼我剛剛作出了一個打印按鈕:如何通過window.print()打印頁面的某些特定部分

<span style="float:right;"><a href="javascript:window.print()" type="button" class="btn">PRINT</a></span> 

但將打印與表格字段和表的整個頁面,我只是想要打印的表格。 這裏是我的整個頁面與形式和表格設計:

<html> 
<head></head> 
<body> 
<div class="container"> 
<form class="form-horizontal" action="" method="post" name="userform1" id="company-form" enctype="multipart/form-data"> 
    <?php if($_GET[id]){?> 


<fieldset> 
    <legend>Add Company</legend> 
    <div class="control-group"> 
    <label class="control-label">Company Name</label> 
    <div class="controls"> 
    <input type="text" name="company" id="company" value="<?php echo $selup['company']?>"> 
    </div> 
    </div> 
<div class="control-group">another field</div> 
<div class="control-group">another field</div> 
<div class="control-group"> 
    <div class="controls"> 
    <button type="submit" class="btn" name="submit" id="submit" value="Submit">Submit</button> 
    </div> 
    </div> 
<table class="table table-bordered"> 
      <tbody> 
      <tr> 
       <td>S.No.</td> 
       <td>Company Name</td> 
       <td>Type</td> 
       <td>Action</td> 
      </tr> 
       <?php 
       // to print the records 
       $select = "select * from company where type='Miscellaneous'"; 
       $query1 = mysql_query($select); 
       while($value = mysql_fetch_array($query1)){ ?> 

       <tr> 
       <td><?php echo $value[id];?></td> 
       <td><?php echo $value[company ];?></td> 
       <td><?php echo $value[type];?></td> 
       <!--<td>&nbsp;</td>--> 
       <?php /*?><td><?php echo $value[amount];?></td>    
       <td><?php echo $value[date];?></td><?php */?> 
       <td><a href="<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $value[id];?>&cmd=edit"><i class="icon-edit"></i></a> 
       <a href="<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $value[id];?>&cmd=delete" onclick="return confirm('Are you sure you want to delete <?php echo $value[customer];?>?')"><i class="icon-trash"></i></a></td> 


       </tr><?php }?> 
     </tbody> 
     </table> 
</fieldset> 
<form> 
</div> 
</body> 

,所以我只想打印該表不是整個頁面。

+0

可能重複:http://stackoverflow.com/questions/11738380/why-does-it-print-only-one-time-please-give-me-solution/11738592#11738592 –

+0

只是提及你的表單標籤沒有關閉。 – IGRACH

+0

試試這個答案:http://stackoverflow.com/a/26114555/3944217 – edCoder

回答

9

使用CSS來隱藏元素,你不希望打印:

@media print { 
    .control-group { 
     display: none; 
    } 
} 
+0

我已經做到了,但有些原因,它不適合我.. :(正如我所提到的,我有相同的頁面上的東西。 – Montiyago

+0

嘿finaly我已經做到了。感謝您寶貴的幫助,兄弟 – Montiyago

2

一個更多鈔票的解決方案,也許不是最好的選擇:

1. Open a new window with JS 
2. Copy the whole table into the new window (with jQuery for example) 
3. Print the new window 
4. Close the window 

確保它有一個眨眼的效果,但它會工作。

3

你可以做一個打印的CSS(這不一樣的@media打印,但我認爲這是更清潔,你可以禁用的CSS通過JavaScript包括,如果需要的話):

<link rel="stylesheet" type="text/css" href="print.css" media="print" /> 

在該CSS,你躲這不應該得到打印的所有元素,例如:

.wrapper, .header {display: none;} 
+0

感謝您的寶貴幫助,但由於某種原因,它不適合我。 – Montiyago

+0

感謝您的寶貴幫助兄弟..我做到了。 – Montiyago

3
function printContent(el){ 
    var restorepage = document.body.innerHTML; 
    var printcontent = document.getElementById(el).innerHTML; 
    document.body.innerHTML = printcontent; 
    window.print(); 
    document.body.innerHTML = restorepage; 
} 
<!DOCTYPE html> 
<html> 
<head> 

</head> 
<body> 
<h1>My page</h1> 
<div id="div1">DIV 1 content...</div> 
<button onclick="printContent('div1')">Print Content</button> 
<div id="div2">DIV 2 content...</div> 
<button onclick="printContent('div2')">Print Content</button> 
<p id="p1">Paragraph 1 content...</p> 
<button onclick="printContent('p1')">Print Content</button> 
</body> 
</html>