7

私はphp mysqlのフォームに取り組んでいます。私のページにはフォームがあり、その下にそのフォームのデータをテーブル形式で表示しました。今はテーブル構造のみを印刷したいので、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>

だから、ページ全体ではなくテーブルを印刷したいだけです。

4

4 に答える 4

10

css を使用して、印刷したくない要素を非表示にします。

@media print {
    .control-group {
      display: none;
    }
}
于 2013-07-31T08:09:05.277 に答える
5
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>
于 2016-04-06T06:23:28.897 に答える
3

print-css を作成することもできます (これは @media print と同じですが、よりクリーンだと思います。必要に応じて、javascript を介して css インクルードを無効にすることができます):

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

その css では、印刷されるべきではないすべての要素を非表示にします。次に例を示します。

.wrapper, .header {display: none;}
于 2013-07-31T08:09:09.623 に答える
2

考えられる解決策の 1 つですが、おそらく最良の選択肢ではありません。

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

確かにまばたき効果はありますが、うまくいきます。

于 2013-07-31T08:07:13.933 に答える