2016-01-30 3 views
0

У меня есть страница php с 3 или более таблицами. Мне нужно распечатать их. У меня есть код javascript для печати таблицы, которая работает для страницы с одной таблицей, но если у меня есть две или более таблиц, и когда я нажимаю кнопку «Печать», будет напечатана только первая таблица. Может ли любой орган помочь мне распечатать второй или третий стол? Вот мой 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> 
+0

Вы сделали цикл for, а затем добавили их все вместе? – dvenkatsagar

+0

Да, у меня есть цикл while, чтобы получить данные из моей базы данных и поместить их в таблицу (ы) –

+0

Это хорошо, но я имею в виду, что в printPage() выполните цикл for и получите общее количество таблиц и выполнить все операции для одной таблицы и добавить результаты вместе? – dvenkatsagar

ответ

0

Я думаю, что это может помочь вам получить представление. Я не тестировал его, потому что у меня нет конкретных данных для работы. Но проверьте это и посмотрите, работает ли это.

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 является индексом таблицы, которую вы хотите выбрать, и распечатает требуемую таблицу. Тогда вы можете исходить оттуда.

Надеюсь, это поможет.

+0

Хорошо, я отредактировал ответ, глупая ошибка (синтаксическая ошибка). Просьба проверить его и посмотреть, работает ли он. – dvenkatsagar

Смежные вопросы