Tomar valor de variables en script

Hola a todos: Estoy tratando de hacer una multiplicación entre valores de input´s, la cuestión es que creo los input con php de la...

La FAQ Tomar valor de variables en script tiene

Pertenece a la categoría:

Pregunta
Hola a todos:



Estoy tratando de hacer una multiplicación entre valores de input´s, la cuestión es que creo los input con php de la siguiente forma:




while($row2 = mysql_fetch_array($resul2))



{



echo '<td><div align="center"><input Id="PU'.$cont2.'" type="text" name="PU" size="15" maxlength="15" value=0 onChange="multiplicar(this);">';



echo '<input Id="VOL'.$cont2.'" type="text" name="VOL" size="10" maxlength="10" value=0 onChange="multiplicar(PU'.$cont2.',VOL'.$cont2.',IMP'.$cont2.');">';



echo '<input Id="IMP'.$cont2.'" type="text" name="IMP" size="15" maxlength="15" disabled="disabled" />';



$cont2 = $cont2 + 1;



}




Y cuando se ejecuta el script multiplicar la paso los ID de los Input’s



Pero como decirle que me tome le valor de las variables y no el nombre de las variables en el script.




<SCRIPT>



<!--



function multiplicar(PU,VOL,IMP) {



m1 = document.getElementById(PU).value; (el parametro es el ID del input)



m2 = document.getElementById(VOL).value;



r = m1*m2;



document.getElementById(IMP).value = r;







}



//-->



</SCRIPT>





Respuesta de Cristian Guerra
Hola.
Vamos a ver si nos podemos explicar.


Tienes la función multiplicar(PU,VOL,IMP) la cual recibe 3 parámetros, por consiguiente cuando se llama la función se le deben pasar 3 parámetros y en el input con Id="PU'.$cont2..'" le estas pasando solo un parámetro.
Por otra parte la función getElementById lleva comillas simples, ejemplo document.getElementById('PU').value; y en un evento de un input solo puedes pasar su propio valor, por lo que en el evento onChange del input con Id="VOL'.$cont2.'" no puedes pasar el valor de otro input.
Lo correcto es:
De la parte de php no te sé decir si estas escribiendo bien el código.

function multiplicar(cont) { //Pasas el valor varible, que es el contador


eval("var m1 = document.getElementById('PU"+cont+"').value") // Realizas una evaluación del contenido ya que tiene un valor variable


eval("var m2 = document.getElementById('VOL"+cont+"').value"); // Observa que el valor del id a buscar tiene que ir entre comillas simples


var r = m1*m2;


eval("document.getElementById('IMP"+cont+"').value = r");


}

Trata de colocar la palabra reversaba var cuando creas una nueva variable, te puede evitar muchos dolores de cabeza cuando manejas varios script.

Espero haberte ayudado.

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Volver al árbol de categoríasVolver al árbol de categorías
Alojados en el grupo