javascript打印所有表和单个表

时间:2010-03-24 12:09:47

标签: php javascript jquery

我正在从数据库中检索值并使用php显示一个表。每个表都存储在div标签内。​​

<div id="print">
table content 1
</div>

<div id="print">
table content 2
</div> ..................

有人可以建议一个javascript我可以得到一个单独的链接/按钮,将打印所有表格和所有表格上的链接打印每个表格。我使用了几个javascripts和jquery插件,但无法完成我的工作。

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

您需要为每个div分别设置ID。像print1,print2等。然后你可以使用Document.getElementById(“print1”)获取或设置值.innerHTML

以下是一些可以提供帮助的快速功能:

function getContents(id) {
  var contents = Document.getElementById(id).innerHTML;
  return contents;
}

function setContents(id, value) {
  Document.getElementById(id).innerHTML = value;
}

现在您可以使用循环来调用这两个函数中的任何一个/两个。您还可以修改getContents()函数以打印到您想要输出的输出。

答案 1 :(得分:1)

一些提示:

  1. ID在整个文档中应该是唯一的。使用类可以识别您的表格。

  2. 使用@ media = print设置正确的CSS规则,以便只打印您的表格。

  3. “打印所有表格”按钮非常简单:只需将整个文档发送到打印机。

  4. “打印此表”按钮必须执行以下操作:

    1. 识别表格(将按钮放在表格内或公共容器中)
    2. 将CSS类设置为所有其他表,以便它们不会打印
    3. 将整个文档发送到打印机
    4. 重新设置原始CSS类
  5. 如果您不确定任何步骤,请随时提出。

    更新:识别表

    只是众多可能性中的一个:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head><title></title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript"><!--
    function printThisTable(button){
        var $table = $(button).closest("div").find("table");
    
        alert("Table found: " + $table.text());
    }
    //--></script>
    </head>
    <body>
    
    <div>
        <table><tr><td>I'm table A</td></tr></table>
        <p><input type="button" onclick="printThisTable(this)" value="Print this table"></p>
    </div>
    
    <div>
        <table><tr><td>I'm table B</td></tr></table>
        <p><input type="button" onclick="printThisTable(this)" value="Print this table"></p>
    </div>
    
    <div>
        <table><tr><td>I'm table C</td></tr></table>
        <p><input type="button" onclick="printThisTable(this)" value="Print this table"></p>
    </div>
    
    </body>
    </html>