在一页中打印一个多表的表格


print one table of multi table in one page

我有一个包含 3 个或更多表的 php 页面。我需要打印它们。我有一个用于打印表格的 javascript 代码,该表格适用于具有一个表格的页面,但如果我有 2 个或更多表格,并且当我单击打印按钮时,只会打印第一个表格。任何人都可以帮我打印第二张或第三张桌子吗?这是我的javascript代码:

<script type="text/javascript">function printPage(){
    var tableData = '<table border="1" dir="rtl">'+document.getElementsByTagName('table')[0].innerHTML+'</table>';
    var data = '<button onclick="window.print()">Print this page</button>'+tableData;
    myWindow=window.open('','','width=800,height=600');
    myWindow.innerWidth = screen.width;
    myWindow.innerHeight = screen.height;
    myWindow.screenX = 0;
    myWindow.screenY = 0;
    myWindow.document.write(data);
    myWindow.focus();
  };
</script>

这是我的打印链接代码:

<a id="print" href="javascript:void(0);" onclick="printPage();">print</a>

我认为这可能有助于您了解一个想法。我没有测试它,因为我没有任何特定的数据可以处理。但是请检查一下,看看它是否有效。

function printPage(){
  var tableData = '';
  for (var i = 0; i < document.getElementsByTagName('table').length; i++){
    tableData = tableData + '<table border="1" dir="rtl">'+document.getElementsByTagName('table')[i].innerHTML+'</table>';
  }
    var data = '<button onclick="window.print()">Print this page</button>'+tableData;
    myWindow=window.open('','','width=800,height=600');
    myWindow.innerWidth = screen.width;
    myWindow.innerHeight = screen.height;
    myWindow.screenX = 0;
    myWindow.screenY = 0;
    myWindow.document.write(data);
    myWindow.focus();
}

这将附加所有表格,并允许您打印所有表格。

但是,如果您想选择要打印的表格,那么有不同的方法可以做到这一点,例如保留与 3 个表格相连的 3 个链接,或者打开一个带有选择选项的窗口,该选项选择您需要的表格。无论哪种方式,您都可以更改上述功能,以便将表的索引值传递给printPage()函数,如下所示:

function printPage(t){
    tableData = '<table border="1" dir="rtl">'+document.getElementsByTagName('table')[t].innerHTML+'</table>';
    var data = '<button onclick="window.print()">Print this page</button>'+tableData;
    myWindow=window.open('','','width=800,height=600');
    myWindow.innerWidth = screen.width;
    myWindow.innerHeight = screen.height;
    myWindow.screenX = 0;
    myWindow.screenY = 0;
    myWindow.document.write(data);
    myWindow.focus();
}

这里t是您要选择的表的索引,它会打印所需的表。然后你可以从那里继续。

希望对您有所帮助。