2016-08-03 10 views
0

私は、動的テーブルをデータベースから作成しています。私のコードは以下の通りです:値が変更されたときに、私はweightageの変更、小計の自動計算とは、新しい価値を与えたときに、そのようなことを、自動小計で計算を行うにしようとしていますデータベースから値を集計する方法

<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

これらweightagesは動的であり、および小計のDONOTは、固定位置を持っています。どのようにして最初の4つの変更があった場合、最初の小計が変更され、2番目と3番目の変更があれば2番目の小計が変更されることを確認しますか?

ご意見がありがとうございます。

+1

非常に最初のポイント。同じページに*同じIDを持つことはできません。それを確認してください。 'id =" Row <?php echo $ Row_Number?> "'同じIDを持つすべての入力。 –

答えて

0

はinputタグでのonchange属性を追加し、jsの関数を呼び出し、そこにあなたの計算を行います。 http://www.w3schools.com/jsref/event_onchange.asp

それを行う別の方法は、jsの変更機能です。入力してバインドしてください https://api.jquery.com/change/

+0

入力と結び付けても問題ありませんが、最初の数は小計に、次の小計は2番目の小計に加算されることはどのようにわかりますか? – SR1092

0

まず、コントローラのロジックとモデルをビューから切り離してみましょう。それはあなたのコードクリーナーを作るでしょう。 貼り付けたコードスニペットに従ってフォームフィールドを介してユーザーの入力に基づいて重みが変更されると仮定します。私は正直なところ小計を計算する方法を理解していませんが、このためにAJAXスタイルのソリューションを実装する必要があると考えています。その場合、重み付けが変更されたときに、モデルから小計を再計算する要求が送信されますまたは何らかの形のLogicから購入することができます。

関連する問題