2013-07-31 12 views
6

pracuję nad formularzem w php mysql. tak w mojej stronie znajduje się formularz i poniżej, że przedstawione dane z tego formularza w tabeli format.now chcę wydrukować tylko struktura stół to dlaczego Zrobiłem przycisk Drukuj jako:Jak wydrukować określoną część strony za pomocą window.print()

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

ale wydrukuje całą stronę z polem formularza i tabelą, a ja po prostu chcę wydrukować tableto. Oto konstrukcja całej mojej stronie z formy i tabela:

<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> 

więc chcę tylko, aby wydrukować tabelę nie całą stronę.

+0

Powiel możliwe: http://stackoverflow.com/questions/11738380/why-does-it-print-only-one-time-please-give-me-solution/11738592#11738592 –

+0

Wystarczy wspomnieć, że znacznik formularza nie jest zamknięty. – IGRACH

+0

Wypróbuj tę odpowiedź: http://stackoverflow.com/a/26114555/3944217 – edCoder

Odpowiedz

9

użyć CSS, aby ukryć elementy nie chcesz wydrukować:

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

Zrobiłem to, ale niektóre powody, dla których to nie działa dla mnie .. :(jak wspomniałem, mam to wszystko na tej samej stronie. – Montiyago

+0

hej finaly Zrobiłem to. dzięki za cenną pomoc – Montiyago

2

Jedno rozwiązanie posible, może nie najlepszym rozwiązaniem:

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 

Pewnie, że ma efekt mrugania ale będzie ona działać.

3

Można zrobić wydruk CSS (który działa tak samo jak @media druku, ale myślę, że jest czystsze, a ty można wyłączyć css to poprzez javascript, jeśli jest to potrzebne):

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

W tym CSS ukryć wszystkie elementy, które nie powinny dostać drukowanych, na przykład:

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

dziękuję za ur cenną pomoc, ale z jakiegoś powodu nie działa dla mnie – Montiyago

+0

dzięki za twoją cenną pomoc, zdziałasz. – 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> 
Powiązane problemy