Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/02/2009, 11:05
Siho
 
Fecha de Ingreso: febrero-2008
Mensajes: 39
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Cambiar de nombre.value a getElementById

Son fragmentos de un código muy largo de 600 lineas. Ocurre que es un script que suma valores de los sectcs y después yo quiero pasar la suma total y los elementos que suman por PHP, ya que esos elementos surgen en ese código como consultas de php.
Ej:
Select --> Manzana (2), Pera (5), Albaricoque (3)
Select --> Banana (1), Kaki (6)

Si yo selecciono la manzana del primer select y la banana del segundo me da 3.
yO QUIERO pasar por post:
Manzana 2, Banana 1 y total 3

Me han dicho en el foro de PHP que eso debo hacerlo cambiando el javascript para que me coja los elementos por el id y no por el name.
Los fragmentos que he puesto son como está ahora, lógicamente si tengo que cogerlos por id pues llamo a los selects por ejemplo:

Código HTML:
<select size='1' name='compra1' id='lista1' onChange=Sumar()>
<option selected value=''></option>
<option value='1'>1</option>;
<option value='2'>2</option>;
<option value='3'>3</option>;
</select>

<select size='1' name='compra2' id ='lista1' onChange=Sumar()>
<option selected value=''></option>
<option value='1'>1</option>;
<option value='2'>2</option>;
<option value='3'>3</option>;
</select> 
La duda es, cómo quedaría el javascript? Lo pongo entero:

Código HTML:
<SCRIPT LANGUAGE=JavaScript>
function Sumar() {
var val1;
var val2;
var val3;
var val1tot2 = 0;
var val2tot2 = 0;
var val3tot2 = 0;
var val1tot;
var val2tot;
var val3tot;
var darma;


for (i=0; i<document.factura.lista1.length; i++){
val1 = (! parseFloat(document.factura.lista1[i].value))?0:parseFloat(document.factura.lista1[i].value);
val1tot = val1 * document.factura.categoa.value;
val1tot2 += val1tot;


val2 = (! parseFloat(document.factura.lista2[i].value))?0:parseFloat(document.factura.lista2[i].value);
val2tot = val2 * document.factura.categob.value;
val2tot2 += val2tot;

val3 = (! parseFloat(document.factura.lista3[i].value))?0:parseFloat(document.factura.lista3[i].value);
val3tot = val3 * document.factura.categoc.value;
val3tot2 += val3tot;

document.factura.tot.value = val1tot2+val2tot2+val3tot2;
darma = document.factura.tot1.value;
document.factura.tot2.value = darma - document.factura.tot.value;
var count = document.factura.tot2.value;

var parent = document.getElementById( 'depper' );
parent.innerHTML="<div>" + count +"</div>"; 

if (document.factura.tot2.value < 0){
alert ('No tienes suficientes puntos')
}
}

}

function validar2(){
if (document.factura.tot2.value < 0){
alert ('No tienes suficientes puntos')
}else{
alert ('Ahora se enviaria')
factura.submit();
}	
}
</SCRIPT>