如何对从数据库填充的值进行求和

时间:2016-08-03 12:54:29

标签: javascript php jquery sql-server-2012 dynamic-tables

我从数据库中填充了一个动态表。我的代码如下:

<table class="table table-bordered" id="tb">
  <thead>
    <tr style="BACKGROUND-COLOR: DarkGrey ">
      <th colspan="5" style="text-align:Center;">Objectives</th>
    </tr>
    <tr class="tr-header">
      <th style="text-align:Center;width:10%;">ID</th>
      <th colspan="2">Targets</th>
      <th style="text-align:Center;width:1%;" rowspan="2">Weightage %</th>
    </tr>
    <tr>
      <th> </th>
      <th> </th>
      <th style="width:10%;"> Date </th>
    </tr>
  </thead>
  <tbody
  <?PHP
  $myquery = "select subtotals,Serial_Number,Targets,Weightage, row_number,edit_details
              from Table1 WHERE Serial_Number='$Serial_Number' ORDER BY Row_Number asc";
  $fetched = sqlsrv_query($conn, $myquery);
  if ($fetched === false) {
    die(print_r(sqlsrv_errors(), true));
  }
  while ($res = sqlsrv_fetch_array($fetched, SQLSRV_FETCH_ASSOC)) {
    $Weightage = $res['Weightage'];
    $Targets = $res['Targets'];
    $Row_Number = $res['row_number'];
    $subtotals = $res['subtotals'];
    ?>
    <tr id="<?php //echo $id  ?>" class="tredit">
      <td class="edittbl">
        <b><input type="text" name="ID[]" class="ASDF form-control" id="Row<?php echo $Row_Number ?>" value="<?php echo $Row_Number; ?>" readonly></input></b>
      </td>                                               
      <?PHP
      if ($Objectives == "SubTotal") {
        ?>
        <td class="edittbl" colspan="3">
          <b><input type="text" name="Subtotal[]" class=" ASDF form-control" value="<?php echo $Objectives; ?>" style="text-align:center;" readonly ></input></b>
        </td>   
        <td class="edittbl">
          <b><input type="text" name="SubTotal_Weightage[]" class="ASDF form-control" value="<?php echo $Weightage; ?>" readonly></input></b>
        </td>                                               
        <?PHP
      } else {
        ?>
        <td class="edittbl">
          <input type="text" name="Targets[]" class="ASDF form-control" value="<?php echo $Targets; ?>" ></input>
        </td> 
        <td class="edittbl">
          <input type="text" name="Weightage[]" class="ASDF form-control" value="<?php echo $Weightage; ?>"></input>
        </td>
      <?PHP } ?>
      </tr>                   
    <?PHP } ?>
  </tbody>
</table>

我试图在值变化时对小计进行自动计算,这样当权重发生变化时,小计自动计算并给出新值。

Calculation Image

这些重量是动态的,小计的重量是固定的。我如何确保如果前四个有任何变化,它会改变第一个小计,如果第二个和第三个有任何变化,它会改变第二个小计吗?

非常感谢任何建议。

2 个答案:

答案 0 :(得分:0)

在输入标记上添加onchange属性并调用js函数并在那里进行计算: http://www.w3schools.com/jsref/event_onchange.asp

另一种方法是使用js更改功能。用你的输入绑定它 https://api.jquery.com/change/

答案 1 :(得分:0)

首先,为什么不将控制器逻辑和模型与视图分开?它会让你的代码更清晰。 我假设根据您粘贴的代码片段,通过表单字段根据用户输入更改权重。老实说,我不明白你如何计算小计,但我认为你应该为此实现一个AJAX风格的解决方案,这样当权重发生变化时,会向模型发送一个请求,重新计算小计,或者通过从数据库中取出它来重新计算小计。或者来自某种形式的逻辑。