繁体   English   中英

使用javascript,mysql,php和html打印包含工资计算的网页

[英]Printing a webpage that contains a salary calculation using javascript, mysql, php and 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">&nbsp;</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">&nbsp;</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之前将其添加到打印功能中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM