Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2012, 13:10
setenta
 
Fecha de Ingreso: octubre-2008
Mensajes: 70
Antigüedad: 16 años, 1 mes
Puntos: 2
Script embrujado: Resta cuando tiene que sumar

Hola. En el siguiente script, lo que hago es usar una lista select para seleccionar peso (en gramos) de un alimento, otro select para seleccionar los alimentos y dos cuadros de texto: en el primero, se escriben las calorias del alimento seleccionado y en el segundo, se van sumando todas las calorias de los alimentos seleccionados. Todo bien.
Como las calorias son por cada 100 gramos de alimentos, entonces, si selecciono los gramos de un alimento, como por ej. 300 gramos, debe multiplicar por 3 las calorias del alimento. Esto lo hace bien, pero mejor pongo un ejemplo.

Por ejemplo: supongamos que manzana tiene 60 calorias y banana tiene 80 calorias. Yo eligo 200 gramos de manzana (60x2=120 calorias) y 200 gramos de banana (80x2=160 calorias). Sumados dan 120+160 = 280. Pero si elijo ahora, por ejemplo, naranja (de 70 calorias) y pongo 500 gramos, debería sumar 5x70 = 350 y lo hace, el tema es que me pone 500 gramos de manzana y de banana tambien y lo suma a todo. Como podria solucionarlo? Gracias

Cita:
<script language="javascript">
var valor; var texto; var indice; var textoEscogido;
function Propiedades(){
texto = document.formulario.cantidad.length
indice = document.formulario.cantidad.selectedIndex
valor = document.formulario.cantidad.options[indice].value
textoEscogido = document.formulario.cantidad.options[indice].text
}
var valor_total = 0;
var _list_kalorias = new Array(); //Array para _list_kalorias

document.write(valor);
function insertar_el_numero(op) {

var chosenoption=op.options[op.selectedIndex] //this refers to "selectmenu"
if (!isNaN(chosenoption.value)){
_list_kalorias.push(chosenoption);

calculate(); }
}
function calculate(){

var form = document.getElementById('formulario');
var txt='';
valor_total=0;
for(var i =0;i<_list_kalorias.length;i++ ){
var op = _list_kalorias[i];
txt+=op.text +':'+op.value*valor+"\n";
valor_total += parseInt(op.value*valor);
}
form.seleccionados.value=txt;
form.suma.value="Total: "+valor_total+" kcal" ;
}

// End -->
</script>

Última edición por setenta; 20/03/2012 a las 13:20