javascript - Calculating Subtotals for Category Sections Using Class Names -
i'm working on project based on excel spreadsheet, need calculate budgets, etc. there various categories in table, , need calculate subtotal of each category. here's screenshot make more clear: http://i.imgur.com/loylbw7.png
my problem is, i'm not sure how calculate subtoal each category. right now, have $('.subcat100 .budget').each(function(). class "subcat100" attached tr , changes each category section (subcat100, subcat200, subcat300, etc.). numerical value based off sub category number stored in database. how pull of these classes , iterate through them?
jquery:
$(document).ready(function() { $('input[name="txtquantity[]"],input[name="txtunitcost[]"]').change(function(e) { var budget = 0; var $row = $(this).parent().parent(); var quanity = $row.find('input[name="txtquantity[]"]').val(); var unitcost = $row.find('input[name="txtunitcost[]"]').val(); budget = parsefloat(quanity * unitcost); var decimal = budget.tofixed(2); $row.find('.budget').val(decimal); var sum = 0; $('.subcat100 .budget').each(function() { var budgets = $(this).val(); console.log(budgets); if (isnumeric(budgets)) { sum += parsefloat(budgets, 10); } }); $('.subcat100 .budgetsubtotal').val(sum); }); function isnumeric(input) { return (input - 0) == input && input.length > 0; } });
html:
<table> <tbody> <tr class="subcat100"> <td> <span name="txtitemcode[]"><strong>100</strong></span> </td> <td colspan="7"> <span name="txtsubcategoryname[]" class="100"><strong>land purchase costs</strong></span> </td> </tr> <tr class="subcat100"> <td> <input type="text" name="txtsubitemcode[]" size="10" readonly="readonly" value="101"> </td> <td> <input type="text" name="txtitem[]" size="50" readonly="readonly" value="purchase price"> </td> <td> <input type="text" name="txtunit[]" size="10" value=""> </td> <td> <input type="text" name="txtquantity[]" class="integer" size="10" value="1"> </td> <td> <input type="text" name="txtunitcost[]" class="monetary" size="10" value="299.99"> </td> <td> <input type="text" name="txtbudget[]" class="monetary budget" size="10" readonly="readonly" value="299.99"> </td> <td> <input type="text" name="txtactual[]" class="monetary" size="10" value="249.99"> </td> <td> <input type="text" name="txtdifference[]" class="monetary difference" size="10" readonly="readonly" value="50.00"> </td> </tr> <tr class="subcat100"> <td> <input type="text" name="txtsubitemcode[]" size="10" readonly="readonly" value="110"> </td> <td> <input type="text" name="txtitem[]" size="50" readonly="readonly" value="realtor's fees"> </td> <td> <input type="text" name="txtunit[]" size="10" value=""> </td> <td> <input type="text" name="txtquantity[]" class="integer" size="10" value=""> </td> <td> <input type="text" name="txtunitcost[]" class="monetary" size="10" value=""> </td> <td> <input type="text" name="txtbudget[]" class="monetary budget" size="10" readonly="readonly" value=""> </td> <td> <input type="text" name="txtactual[]" class="monetary" size="10" value=""> </td> <td> <input type="text" name="txtdifference[]" class="monetary difference" size="10" readonly="readonly" value=""> </td> </tr> <tr class="subcat100"> <td> <input type="text" name="txtsubitemcode[]" size="10" readonly="readonly" value="120"> </td> <td> <input type="text" name="txtitem[]" size="50" readonly="readonly" value="due diligence"> </td> <td> <input type="text" name="txtunit[]" size="10" value=""> </td> <td> <input type="text" name="txtquantity[]" class="integer" size="10" value="15"> </td> <td> <input type="text" name="txtunitcost[]" class="monetary" size="10" value="45.00"> </td> <td> <input type="text" name="txtbudget[]" class="monetary budget" size="10" readonly="readonly" value="675.00"> </td> <td> <input type="text" name="txtactual[]" class="monetary" size="10" value="700.00"> </td> <td> <input type="text" name="txtdifference[]" class="monetary difference" size="10" readonly="readonly" value="-25.00"> </td> </tr> <tr class="subcat100"> <td colspan="5"> <span><strong>subtotal</strong></span> </td> <td> <input type="text" name="txtsubtotalbudget[]" class="budgetsubtotal" size="10" readonly="readonly" value=""> </td> <td> <input type="text" name="txtsubtotalactual[]" class="actualsubtotal" size="10" readonly="readonly" value=""> </td> <td> <input type="text" name="txtsubtotaldifference[]" class="differencesubtotal" size="10" readonly="readonly" value=""> </td> </tr> </tbody> </table>
well, ended doing this:
var itemcodes = <?php echo json_encode($arritemcodes);?>; $('input[name="txtquantity[]"],input[name="txtunitcost[]"]').change(function(e) { var budget = 0; var $row = $(this).parent().parent(); var quanity = $row.find('input[name="txtquantity[]"]').val(); var unitcost = $row.find('input[name="txtunitcost[]"]').val(); budget = parsefloat(quanity * unitcost); $row.find('.budget').val(budget.tofixed(2)); $.each(itemcodes, function(intindex, objvalue) { var sum = 0; $('.subcat' + objvalue + ' .budget').each(function() { var budgets = $(this).val(); console.log(budgets); if (isnumeric(budgets)) { sum += parsefloat(budgets, 10); } }); $('.subcat' + objvalue + ' .budgetsubtotal').val(sum.tofixed(2)); }); });
open other suggestions!
Comments
Post a Comment