2016-08-03 22 views
0

У меня есть динамическая таблица, заполняемая из базы данных. Мой код, как показано ниже:Как суммировать значения, заполненные из базы данных

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

Я пытаюсь сделать автоматический расчет по подразделам итогов при изменении значения, таким образом, что при изменении weightage, суб-итоги авто высчитывает и дать новое значение.

Calculation Image

Эти weightages являются динамическими, и Donot подытог имеют фиксированное положение. Как я могу гарантировать, что если в первых четырех изменениях изменится 1-й под-итог, а если есть какие-либо изменения во 2-м и 3-м, то он изменит 2-й под-итог?

Поблагодарили бы за любые предложения.

+1

Очень первый пункт. Нет двух входов, которые могут иметь * одинаковый идентификатор на одной странице *. Проверь это. 'id =" Строка "' каждый вход, имеющий одинаковый идентификатор. –

ответ

0

Добавить OnChange атрибут тега ввода и обработки вызовов функции и расслоение плотной сделать свой расчет там: http://www.w3schools.com/jsref/event_onchange.asp

Другой способ сделать это JS функция изменения. Привяжите его своим вводом https://api.jquery.com/change/

+0

связывая его с входом, все в порядке и может быть сделано, но как я узнаю, что 1-е несколько должны добавить до общего и следующего к второму под-итогу? – SR1092

0

Во-первых, почему бы не разделить логику и модель контроллера на вид? Это сделает ваш код чище. Я предполагаю, что изменение веса будет изменено на основе пользовательского ввода через поле формы в соответствии с вложенным фрагментом кода. Я, честно говоря, не понимаю, как вы вычисляете промежуточные итоги, но я думаю, что вы должны реализовать решение стиля AJAX для этого, так что когда изменяется весовой коэффициент, запрос отправляется в модель для пересчета промежуточного итога либо путем извлечения его из базы данных или из какой-то формы логики.

Смежные вопросы