Forum Moderators: open
[edited by: tedster at 10:53 pm (utc) on Dec 25, 2010]
[edit reason] member request [/edit]
<div class="calorieNumbers"><!-- Here are the totals from food item choices -->
Calories <span id="calorieTotals">0</span>,
Protein <span id="proteinTotals">0</span>g <font color="#0033CC">(<span id="proteinPercentage">0</span>%)</font>,
Carbs <span id="carbsTotals">0</span>g <font color="#0033CC">(<span id="carbsPercentage">0</span>%)</font>,
Fats <span id="fatsTotals">0</span>g <font color="#0033CC">(<span id="fatsPercentage">0</span>%)</font> -
Percentages are based on 25% protein, 60% carbs, 15% fats
</div> function CalculateTotal(frm) {
var calorie_total = 0;
var protein_total= 0;
var carbs_total= 0;
var fat_total= 0;
// Run through all the form fields
for (var i=0; i < frm.elements.length; ++i) {
// Get the current field
form_field = frm.elements[i]
// Get the field's name
form_name = form_field.name
// Is it a "product" field?
if (form_name.substring(0,4) == "PROD") {
// If so, extract the totals from the name
item_ct = parseFloat(form_name.substring(form_name.lastIndexOf("_") + 1));
item_protein = parseFloat(form_name.substring(form_name.lastIndexOf("|") + 1));
item_carbs = parseFloat(form_name.substring(form_name.lastIndexOf("+") + 1));
item_fat = parseFloat(form_name.substring(form_name.lastIndexOf("-") + 1));
// Get the quantity
item_quantity = parseFloat(form_field.value);
protein_quantity = parseFloat(form_field.value);
carbs_quantity = parseFloat(form_field.value);
fat_quantity = parseFloat(form_field.value);
// Update the order total
if (item_quantity >= 0) {
calorie_total += item_quantity * item_ct;
protein_total += protein_quantity * item_protein;
carbs_total += carbs_quantity * item_carbs;
fat_total += fat_quantity * item_fat;
}
}
}
// Display the total rounded to two decimal places
//frm.TOTAL.value = calorie_total;
//frm.P.value = protein_total;
//frm.C.value = carbs_total;
//frm.F.value = fat_total;
var p=document.getElementById("proteinTotals");
p.innerHTML=protein_total;
var p=document.getElementById("proteinPercentage");
p.innerHTML=Math.round(((protein_total*4)/calorie_total)*100);
var tc=document.getElementById("calorieTotals");
tc.innerHTML=calorie_total;
var cat=document.getElementById("carbsTotals");
cat.innerHTML=carbs_total;
var cat=document.getElementById("carbsPercentage");
cat.innerHTML=Math.round(((carbs_total*4)/calorie_total)*100);
var ft=document.getElementById("fatsTotals");
ft.innerHTML=fat_total;
var ft=document.getElementById("fatsPercentage");
ft.innerHTML=Math.round(((fat_total*9)/calorie_total)*100);
}
function getMessageResponse(str)
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX! Try Mozilla FireFox Browser");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.getElementById('response').innerHTML=xmlHttp.responseText;
document.myform.message.value = '';
}
}
var url="show_calorie_table.php";
url=url+"?food="+str;
url=url+"&sid="+Math.random();
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
} [edited by: tedster at 10:51 pm (utc) on Dec 25, 2010]
[edit reason] fix formatting problem [/edit]