Tomar valor de variáveis em script

Pergunta
Olá a todos! Estou tratando de fazer uma multiplicação entre valores de input´s, a questão é que criei os input com php da seguinte 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;

}

E quando se executa o script multiplicar passo os ID dos Input’s

Porém, como dizer que tome o valor das variáveis e não o nome das variáveis script.

<SCRIPT>

<!--

function multiplicar(PU,VOL,IMP) {

m1 = document.getElementById(PU).value; (o parâmetro é o ID do input)

m2 = document.getElementById(VOL).value;

r = m1*m2;

document.getElementById(IMP).value = r;



}

//-->

</SCRIPT>

Valorize esta FAQ:
A FAQ Tomar valor de variáveis em script tem Pertence à categoria:
Resposta
Olá,

Vamos ver conseguirei explicar:
Você tem a função multiplicar(PU,VOL,IMP) a qual recebe 3 parâmetros, por conseguinte quando se chama a função se deve passar 3 parâmetros e no input com Id="PU'.$cont2..'" você está passando somente um parâmetro. Por outro lado, a função getElementById tem aspas simples, exemplo document.getElementById('PU').value; e em um evento de um input só pode passar su próprio valor, portanto no evento onChange do input com Id="VOL'.$cont2.'" você não pode passar o valor de outro input. O correto é:

Da parte de php não sei dizer se você está escrevendo bem o código.

function multiplicar(cont) { //Passa o valor variável, que é o contador

eval("var m1 = document.getElementById('PU"+cont+"').value") // Realiza uma avaliação do conteúdo já que tem um valor variável

eval("var m2 = document.getElementById('VOL"+cont+"').value"); // Observe que o valor do id a buscar tem que ir entre aspas simples

var r = m1*m2;

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

}

Trate de colocar a palavra reversa var quando criar uma nova variável, isso pode evitar muitas dores de cabeça quando manejar vários scripts. Espero ter lhe ajudado.

Por Cristian Guerra

Voltar à árvore de categorias Voltar à árvore de categorias

 
FAQs relacionadas
  + Colocar um fórum em minha página web
  + Mostrar a lista de arquivos de um diretório
  + Ler um arquivo texto no navegador com PHP
  + Extrair um pedaço de texto
  + Contador de visitas
  + Obter a hora em um servidor PHP
  + Undefined variable ou Undefined index
  + Fotos animadas com pouco peso
  + Colocar cursor mão em um link a name
  + Autenticação com PHP e md5
  + Formatar decimais em PHP
  + Tempo excedido em executar script
  + Ler caracteres PHP
  + Recolher o nome da URL em PHP

Usuários :    login / registro

Home | Sobre nós | Copyright | Anuncie | Entrar em contato