Member 13676745 Ответов: 1

Печать зарплатного листа те же данные


Привет Я работаю над зарплатным проектом и кодирую с помощью php,html,js и mysql на сервере xampp. У меня есть код зарплатного листа, который должен быть напечатан в формате pdf для каждого сотрудника с их именами в качестве имени файла pdf.
при запуске php страницы js код запускается автоматически и генерирует pdf файлы но проблема в том что данные о зарплате первого сотрудника печатаются на каждом платежном листе но
Имя файла меняется с каждым pdf-файлом.
например :
1-й Эми зовут Раджеш РАО, 2-й Эми зовут а.Гош.
теперь, когда я печатаю листы, то для этих 2 сотрудников создаются 2 pdf-файла с их именами в качестве имен файлов, но данные о зарплате не меняются на 2-м листе emp/

Любая помощь будет оценена по достоинству

Что я уже пробовал:

<HTML>
<голова>
в <название&ГТ;зарплатные ведомости&ЛТ;/название&ГТ;
в <мета имя="область просмотра" содержимого="ширина=устройство-ширина, начально-масштаб=1"и GT;
<link rel="таблица стилей" href="pure-blog/css/home.css" />
<ссылка отн="стилей" с href="чисто-блог/УСБ/чисто-мин. Усс" /&ГТ;
<ссылка отн="стилей" с href="чисто-блог/УСБ/чисто-у.Усс" /&ГТ;
<link rel="таблица стилей" href="pure-blog/css/pure-form.css" />
<ссылка отн="стилей" с href="чисто-блог/УСБ/чисто-меню.Усс" /&ГТ;
<ссылка отн="стилей" с href="чисто-блог/УСБ/чисто-стол.Усс" /&ГТ;
</HEAD>
<тело>
<?php
включить "connect.php";
$cde = 1;
while ($cde < 3) {
$mysql = "SELECT * FROM emp_ndata WHERE ID = '$cde' ";
$myquery = mysqli_query($con, $mysql);
если(! $myquery ) {
die('не удалось получить данные:' . mysql_error());
}
$row = mysqli_fetch_array($myquery, MYSQLI_ASSOC);
?>
<div id="pdata" class="printArea">
&ЛТ;див класс="чисто-ИМГ" стиль="текст-выровнять:левый"и GT;
&ЛТ;ИМГ СРЦ="чисто-блог/ИМГ/companyLogoFull-формат PDF.PNG"и&ГТ;
</div>

<класс таблицы="table_for_showdata table_for_showdata_small">
<tr>
<th colspan="2">
Зарплатный лист класса <b="table_for_showdata_lg">
&ЛТ;?PHP Эхо $строки['Emp_Name']; ?&ГТ;&ЛТ;/б&ГТ; :&ампер;усилитель; nbsp; &ЛТ;?PHP Эхо $строки ['Emp_psmonth']; ?&ГТ;&ампер;усилитель; nbsp; , &ампер;усилитель; nbsp;&ЛТ;?PHP Эхо $строки ['Emp_psyear']; ?&ГТ;
</th>
</tr>

<tr>
<td>Emp-код</td>
&ЛТ;тд&ГТ;&ЛТ;?PHP Эхо $строки['идентификатор emp_id']; ?&ГТ;&ЛТ;/тд&ГТ;
</tr>
<tr>
<td>обозначение</td>
<td><?php echo $row['Emp_Designation']; ?></td>
</tr>

<tr>
&ЛТ;ом атрибуты colspan="2"и GT;заработок&ЛТ;/й&ГТ;
</tr>

<tr>
<td >Basic</td>
<td><?php echo round($row ['Emp_Basic']).".00"; ?></td>
</tr>

<tr>
<td >пособие на аренду дома</td>
<td><?php echo round($row ['Emp_HRA']).".00"; ?></td>
</tr>

<tr>
в <ом >по отчислениям на</й&ГТ;
в <ом&ГТ;&ампер;усилитель; nbsp;&ЛТ;/й&ГТ;
</tr>

<tr>
&ЛТ;тд &ГТ;профессиональные налоговые&ЛТ;/тд&ГТ;
<td><?php echo $row ['Emp_Proffessional_Tax'].".00"; ?></td>
</tr>

<tr>
<td >Provident Fund</td>
<td><?php echo $row ['Emp_Provident_Fund'].".00"; ?></td>
</tr>

<tr>
в <ом &ГТ;&ампер;усилитель; nbsp;&ЛТ;/й&ГТ;
в <ом&ГТ;&ампер;усилитель; nbsp;&ЛТ;/й&ГТ;
</tr>

<tr>
&ЛТ;тд класс="tab_head_blue"&ГТ;&ЛТ;б&ГТ;заработная плата : &ЛТ;/тд&ГТ;
<td style="font-size:18px"><b>Rs. & lt;?php echo $row ['Emp_Total_Pay'].".00"; ?></b></td>
</tr>

</Таблица>
</div>
<script type="text/javascript">
функция printDiv() {
ВАР divToPrint = документ.метода getElementById('аргумент PDATA');
var popupWin = window.open(", '_blank', 'width=1100,height=400');
popupWin.документ.открыть();
document.title = "<?php echo $row['Emp_Name']; ?>";
popupWin.документ.писать (в'<html-код&ГТ;&ЛТ;глава&ГТ;&ЛТ;титул&ГТ;' + документ.название + '&ЛТ;/название&ГТ;');
popupWin.документ.писать (в'<html-код&ГТ;&ЛТ;теле события onload="окна.печать ()"и GT;' + divToPrint.innerHTML будет + в '</html-код&ГТ;');
popupWin.документ.рядом();
}
</script>

<скрипт>
printDiv();
</script>
<?php
$GLOBALS['cde']++;
}
?>

</BODY>
</HTML>

1 Ответов

Рейтинг:
1

Richard Deeming

Идентификаторы элементов в HTML - документе должны быть уникальными. Вы создаете новое <div> для каждой строки, но все они имеют один и тот же идентификатор. Как браузер ведет себя, когда вы просите его вернуть одиночный элемент с этим идентификатором не определен; в этом случае он, по-видимому, возвращает первый элемент.

Изменить <div> от:

<div id="pdata" class="printArea">
к:
<div class="printArea" data-title="<?php echo $row['Emp_Name']; ?>">

Затем переместите свой скрипт за пределы цикла PHP и выполните цикл через элементы для печати:
<?php
    $GLOBALS['cde']++;
} 
?>

<script>
(function(){
    var divsToPrint = document.getElementsByClassName('printArea');
    for (var index = 0; index < divsToPrint.length; index++) {
        var divToPrint = divsToPrint[index];
        var title = divToPrint.getAttribute("data-title");
        var popupWin = window.open('', '_blank', 'width=1100,height=400');
        popupWin.document.open();
        popupWin.document.write('<html><head><title>' + title + '</title></head>');
        popupWin.document.write('<body onload="window.print()">' + divToPrint.innerHTML + '</body></html>');
        popupWin.document.close();
    }
})();
</script>