Javascript 如何在动态表格中计算折扣、税金(VAT)、小计和总计

Javascript 如何在动态表格中计算折扣、税金(VAT)、小计和总计,javascript,php,jquery,Javascript,Php,Jquery,我刚开始使用jQuery,所以我还是个新手。有人能帮我计算一下动态表中的新价格吗。我有一个动态表,3列,数量,折扣和价格。我需要在用户在当前价格、小计和总计相同的文本框中输入折扣(%)后重新计算新价格 这是我的桌子: <table class="table"> <thead><tr><th style="width:60%">Description</th><th class

我刚开始使用jQuery,所以我还是个新手。有人能帮我计算一下动态表中的新价格吗。我有一个动态表,3列,数量,折扣和价格。我需要在用户在当前价格、小计和总计相同的文本框中输入折扣(%)后重新计算新价格

这是我的桌子:

            <table class="table">
                <thead><tr><th style="width:60%">Description</th><th class="centrer" style="width:10%">Qty</th><th class="centrer" style="width:10%">Discount</th><th class="centrer" style="width:20%">Price</th></tr></thead>
                <tbody>
                <?php
                if(isset($listeArticlePourUnDossier) && count($listeArticlePourUnDossier) > 0)
                {
                    $sousTotal = 0;
                    $symbol = '';
                    $VAT = 0;
                    $TTC = 0;
                    $iArticles = 0;
                    while($iArticles < count($listeArticlePourUnDossier))
                    {
                        $ARTICLE_CURRENCY = $listeArticlePourUnDossier[$iArticles]['ARTICLE_CURRENCY'];
                        $sousTotal = $sousTotal + ($listeArticlePourUnDossier[$iArticles]['ARTICLE_PRIX']); 
                ?>  
                        <tr>
                            <td><?php echo ($listeArticlePourUnDossier[$iArticles]['ARTICLE_NOM']); ?></td>
                            <td class="centrer">1</td>
                            <td class="centrer"><input type="text" name="txtdiscount" id="txtdiscount_<?php echo $iArticles; ?>" onkeyup="calc()"/></td>
                            <td class="centrer"><input type="text" name="txtPrice" id="txtPrice_<?php echo $iArticles; ?>" readonly value="<?php echo (number_format($listeArticlePourUnDossier[$iArticles]['ARTICLE_PRIX'],2)); ?>"/></td>
                        </tr>
                <?php       
                    $iArticles++;
                    }
                ?>      
                    <tr>
                        <td class="nocolor"></td>
                        <td></td>
                        <td class="centrer bold">Subtotal</td>
                        <td class="centrer bold"><?php echo (number_format($sousTotal,2)); ?></td>
                    </tr>
                    <tr>
                        <td class="nocolor"></td>
                        <td></td>
                        <td class="centrer bold">VAT</td>
                        <td class="centrer"><?phpecho (number_format($VAT,2)); ?></td>
                    </tr>
                    <tr>
                        <td class="nocolor"></td>
                        <td></td>
                        <td class="centrer bold">G.Total</td>
                        <td class="centrer bold">
                            <?php
                                $TTC = $sousTotal - $VAT;
                                echo (number_format($TTC,2)); 
                            ?>
                        </td>
                    </tr>
                <?php
                }   
                ?>  
                </tbody>
            </table>

description qtydiscountprice
1.

您可以像这样在价格字段中填写折扣金额,请检查下面的代码,希望对您有所帮助

在这里,更新了您正在使用的td和js代码

谢谢

    <td class="centrer">
                <input type="text" name="txtdiscount" value ="" id="txtdiscount_<?php echo $iArticles; ?>" onkeyup="calc(this.value,'<?php echo $iArticles; ?>')"
                />
              </td>
              <td class="centrer">
                <input type="text" name="txtPrice" id="txtPrice_<?php echo $iArticles; ?>" readonly value="<?php echo (number_format($data['price'],2)); ?>" />
                <input type="hidden" name="hidden_txtPrice" id="hidden_txtPrice_<?php echo $iArticles; ?>" readonly value="<?php echo (number_format($data['price'],2)); ?>" />
              </td>


<tr>
        <td class="nocolor"></td>
        <td></td>
        <td class="centrer bold">VAT</td>
        <td class="centrer">
          <select name="vatDropdown" id="vatDropdown">
            <option value="-1">Select VAT</option>
            <option value="1">Yes</option>
            <option value="2">No</option>
          </select>
        </td>
      </tr>
      <tr>
        <td class="nocolor"></td>
        <td></td>
        <td class="centrer bold">G.Total</td>
        <td class="centrer bold" id="grandtotal">
          <?php  echo (number_format($TTC,2)); ?>          
        </td>
        <input type="hidden" name="hidden_total" id="hidden_total" value="<?php echo (number_format($TTC,2)); ?>" />
      </tr>

        <script>
          function calc(discount, article_id)
          {
            var price = 0;
            var dis_amt = 0;
            var calculatedAmt = 0;
            var discount_amt = 0;
            price = $("#hidden_txtPrice_"+article_id).val();
            if(discount != '')
            {      
              dis_amt = parseFloat(discount) / 100;
              calculatedAmt = parseFloat(price) * parseFloat(dis_amt);
              discount_amt = parseFloat(price) - parseFloat(calculatedAmt);
              $("#txtPrice_"+article_id).val(discount_amt);
            }
            else
            {
              $("#txtPrice_"+article_id).val(price);
            }    
          }

$("#vatDropdown").on('change', function(){
    var dropdown_val = $(this).val();
    var grandtotal = $("#hidden_total").val();
    if(dropdown_val == '1')
    {
      var vat_dis = 15 / 100;
      var vat_amt = parseFloat(grandtotal) * parseFloat(vat_dis);
      var gTotal = parseFloat(grandtotal) + parseFloat(vat_amt);
      $("#grandtotal").html(gTotal.toFixed(2));

    }
    else
    {
      $("#grandtotal").text(grandtotal);
    }    
  });

        </script>


我还有一个相关的问题……我需要在增值税附近放置一个下拉框,供用户选择是或否。如果“是”,总金额应该更改:小计-15%……你知道我应该怎么做吗?@Dave,我更新了代码,请再次检查,我在最后添加了2个tr和js代码。希望它能解决您的问题,谢谢。