1

予算などを計算する必要がある Excel スプレッドシートに基づくプロジェクトに取り組んでいます。テーブルにはさまざまなカテゴリがあり、各カテゴリの小計を計算する必要があります。より明確にするためのスクリーンショットを次に示します: http://i.imgur.com/loyLbW7.png

私の問題は、各カテゴリの小計を計算する方法がわからないことです。現在、私は $('.subcat100 .budget').each(function() を持っています。クラス "subcat100" は tr にアタッチされ、各カテゴリ セクション (subcat100、subcat200、subcat300 など) ごとに変更されます。値は、データベースに保存されているサブカテゴリ番号に基づいています.これらのクラスをすべてプルして、それらを反復処理するにはどうすればよいですか?

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>
4

1 に答える 1

0

さて、私はこれをやった:

    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));
        });
    });

他の提案もお待ちしております!

于 2013-05-09T22:39:58.453 に答える