> Faqs > Tomar valor de variables en script

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 siguiente forma:

<span class="codigo"> 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;

}

</span> 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.

<span class="codigo"> <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> </span>
Responder la pregunta
Editar Hacer otra preguntaPreguntar

Respuestas

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 <span class="codigo">
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");

} </span> 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.

Cristian Guerra