javascript - 使用 javascript、mysql、php 和 html 打印包含工资计算的网页
问题描述
我正在尝试为员工创建工资单。我能够从数据库中检索工资信息并显示在页面上。我还可以使用 javascript 函数计算从工资中扣除的薪水,并将其传递到 html 页面。但是,当我通过打印机通过页面上的打印按钮发出打印命令时,没有打印休假工资扣除值。在这方面的任何帮助将不胜感激,因为这几天我一直在努力解决这个问题。
HTML 代码:
echo '<div id = "divToPrint">';
echo '<form name = "formName1"><table>';
echo '<tr><td colspan = "9"><B>Salary Break Up:</B></td></tr>';
echo '<tr><td colspan = "6">Basic:</td><td>'.$rows[13].'</td><td></td></tr>';
echo '<tr><td colspan = "6">DA:</td><td>'.$rows[14].'</td><td></td></tr>';
echo '<tr><td colspan = "6">HR:</td><td>'.$rows[15].'</td><td></td></tr>';
$a = $rows[13]+$rows[14]+$rows[15];
echo '<td colspan = 7"><B>Gross Salary(A):</B></td><td><B>'.$a.'</B></td></tr>';
echo '<tr><td colspan = "8"> </td></tr>';
echo '<tr><td colspan = "8"><B>Deductions:</B></td></tr>';
echo '<tr><td colspan = "6">Provident Fund:</td><td>'.$rows[16].'</td><td></td></tr>';
echo '<tr><td colspan = "6">Income Tax:</td><td>'.$rows[17].'</td><td></td></tr>';
echo '<tr><td colspan = "6">EMI:</td><td>'.$rows[18].'</td><td></td></tr>';
echo '<tr><td colspan = "6">Loan:</td><td>'.$rows[19].'</td><td></td></tr>';
echo '<tr><td colspan = "6">Other Deduction:</td><td>'.$rows[21].'</td><td></td></tr>';
$deduction = $rows[16]+$rows[17]+$rows[18]+$rows[19]+$rows[21];
echo '<tr><td>Leaves Taken</td>';
echo '<td><select name = "leaves_taken" onChange="setForm2Value()">';
echo '<option value = "">Select...</option>';
echo '<option value = "0">0</option>';
echo '<option value = "1">1</option>';
echo '<option value = "2">2</option>';
echo '<option value = "3">3</option>';
echo '<option value = "4">4</option>';
echo '</select></td>';
echo '<td colspan = "4">Leave Salary Deduction</td>';
echo '<td><input type = "text" name = "leave_sal_deduction" id = "leave_sal_deduction" border = "0"></td><td></td></tr>';
echo '<td colspan = 7"><B>Total Deductions(B):</B></td>
<td><input type = "text" name = "total_deduction" id = "total_deduction"></td></tr>';
echo '<tr><td colspan = "8"> </td></tr>';
$d = "Net Salary(A - B): ";
echo '<td colspan = "7"><B>'.$d.'</B></td>';
echo '<td><input type = "text" name = "total_salary" id = "total_salary"></td></tr>';
}
echo '</table></form>';
echo '</div>';
Javascript代码:
function PrintDiv() {
var divToPrint = document.getElementById('divToPrint');
var popupWin = window.open('', '_blank');
popupWin.document.open();
popupWin.document.write('<html><body onload="window.print()">');
popupWin.document.write(divToPrint.innerHTML + '</html>');
popupWin.document.close();
}
使用 JavaScript 计算离职工资:
function setForm2Value() {
var selectedItem = document.formName1.leaves_taken.selectedIndex;
var selectedItemValue = document.formName1.leaves_taken.options[selectedItem].value;
var selectedItemText = document.formName1.leaves_taken.options[selectedItem].text;
if (selectedItem != 0) {
//document.formName1.textboxName1.value = selectedItemText;
//Getting Gross Salary
var net_sal = "<?php echo $a ?>";
var net_sal1 = parseInt(net_sal);
//Calculation of Leave Salary Deduction
var abc = ((net_sal1 / 30) * selectedItemValue).toFixed(2);
var abc1 = parseInt(abc) ;
//Printing Leave Salary Deduction
$("#leave_sal_deduction").val(abc1);
//Calculating Total Deduction
var d = "<?php echo $deduction ?>";
var d1 = parseInt(d);
var b = parseInt(d1 + abc1);
//Displaying Total Deduction
$("#total_deduction").val(b);
//Calculating Total Payable Salary
var total = (net_sal1 - b);
$("#total_salary").val(total);
解决方案
设置元素的值不会更新 html。要更新 html,您可以使用 object.setAttribute 例如更新元素 leave_sal_deduction 的 html
document.getElementById('leave_sal_deduction').setAttribute("value",document.getElementById('leave_sal_deduction').value);
您可以在获取 divToPrint 的 html 之前将其添加到您的打印功能
推荐阅读
- ssh - 打开网络,无法连接到我的设备(两台linux笔记本电脑和Android智能手机,),最好是SHH
- wordpress - Wordpress 网站中字体加载速度慢
- javascript - 如何使用 javascript for-loop 和 if-statement 在右表中显示数据?
- python - 数据分页时访问 Django-admin 页面上的页码
- amazon-web-services - 我无法通过 SQL 开发人员连接到我的 ORACLE RDS
- python - Dash Plotly 仪表板更新仪表板按钮
- pandas - 我们可以以这种方式使用 group by 吗?
- mysql - 如果满足条件,则将值替换为其他值
- python - 我无法在 python 中打印由字典制作的数据框
- arrays - 如何通过单击标题以升序或降序对表格列进行排序