I fetch values from a database in a table to display in a form and keep serving values in input fields and others are in cells. I want to have it so when we changing serving value then other fields (e.g fat, calorie, protein, fat) should be changed.
$(document).ready(function()
{
var oTable = document.getElementById('myTable');
var x = oTable.rows.length;
function updateMacro()
{
var i;
for(i=1 ; i < x ; i++ )
var serving = parseFloat($(oTable.rows[i].cells[1].innerHTML).val());
var calorie = parseFloat($(oTable.rows[i].cells[2].innerHTML).val());
var fat = parseFloat($(oTable.rows[i].cells[3].innerHTML).val());
var protien = parseFloat($(oTable.rows[i].cells[4].innerHTML).val());
var carbs = parseFloat($(oTable.rows[i].cells[5].innerHTML).val());
var calorien= calorie/100 * serving;
var fatn= fat/100 * serving;
var protienn= protien/100 * serving;
var carbsn= carbs/100 * serving;
parseFloat($(oTable.rows[i].cells[2].innerHTML).val(calorien));
parseFloat($(oTable.rows[i].cells[3].innerHTML).val(fatn));
parseFloat($(oTable.rows[i].cells[4].innerHTML).val(protienn));
parseFloat($(oTable.rows[i].cells[5].innerHTML).val(carbsn));
//var total = (price + 1) * 1.05;
//var total = total.toFixed(2);
//$("#total_price_amount").val(total);
}
$(document).on("change, keyup", ".macrotd", updateMacro);
});
<input class="span4 input-big" id="dare_price" name="price" size="30" type="text" />
<input class="span4 input-big" id="total_price_amount" readonly="readonly" value=""/>
<input class="span4 input-big" id="dare_price2" name="price" size="30" type="text" />
<input class="span4 input-big" id="total_price_amount2" readonly="readonly" value=""/>
<table id="myTable" style="width:100%">
<tbody><tr>
<th>Item Name</th>
<th>Serving</th>
<th>Calories</th>
<th>Fat</th>
<th>Protien</th>
<th>Carbs</th>
</tr>
<tr>
<td>egg</td>
<td class="macrotd"><input type="number" value="1"></td>
<td class="calo">83</td>
<td class="fat">6.4</td>
<td class="pro">6.4</td>
<td class="carb">1.1</td>
</tr>
<tr>
<td>rice</td>
<td class="macrotd"><input type="number" value="100"></td>
<td class="calo">115</td>
<td class="fat">0.3</td>
<td class="pro">2.5</td>
<td class="carb">25.6</td>
</tr>
<tr>
<td>paneer</td>
<td class="macrotd"><input type="number" value="100"></td>
<td class="calo">265</td>
<td class="fat">21</td>
<td class="pro">18</td>
<td class="carb">0</td>
</tr>
<tr>
<td>brown rice</td>
<td class="macrotd"><input type="number" value="100"></td>
<td class="calo">111</td>
<td class="fat">0.9</td>
<td class="pro">2.6</td>
<td class="carb">23</td>
</tr>
<tr>
<td>Chicken</td>
<td class="macrotd"><input type="number" value="100"></td>
<td class="calo">165</td>
<td class="fat">3.6</td>
<td class="pro">31</td>
<td class="carb">0</td>
</tr>
<tr>
<td>milk</td>
<td class="macrotd"><input type="number" value="100"></td>
<td class="calo">69</td>
<td class="fat">4.2</td>
<td class="pro">3.3</td>
<td class="carb">4.5</td>
</tr>
</tbody></table>
In this snippet, I want to change fat, protein, carb, calories according to serving, which we can change, and this table is created dynamically in PHP.