sob 0 Denunciar post Postado Abril 16, 2010 Tenho um formulário com 5 campos de valor + 1 de total. Quero que esse campo de total (que será a soma dos 5 campos) exiba essa soma a medida que o usuário for preenchendo os campos. É possivel? Compartilhar este post Link para o post Compartilhar em outros sites
Eliseu M. 2 Denunciar post Postado Abril 16, 2010 Sim, usando o evento onKeyUp do JavaScript: <script type="text/javascript"> function somar(){ campo1 = document.formulario.campo1.value; // PEGA VALORES DOS CAMPOS DO FORMULÁRIO COM NOME formulario campo2 = document.formulario.campo2.value; campo3 = document.formulario.campo3.value; campo4 = document.formulario.campo4.value; campo5 = document.formulario.campo5.value; document.getElementById('total').innerHTML = (campo1 * 1)+(campo2 * 1)+(campo3 * 1)+(campo4 * 1)+(campo5 * 1); // EXECUTA A OPERAÇÃO MULTIPLICANDO CADA VALOR POR 1, PARA EVITAR CONCATENAÇÃO } </script> <form name="formulario"> <input type="text" name="campo1" onKeyUp="somar()"> <input type="text" name="campo2" onKeyUp="somar()"> <input type="text" name="campo3" onKeyUp="somar()"> <input type="text" name="campo4" onKeyUp="somar()"> <input type="text" name="campo5" onKeyUp="somar()"> <br/></br><br/> Total: <span id="total"></span> Bom, código feito por mim XD Bem simples... Falou! Compartilhar este post Link para o post Compartilhar em outros sites
sob 0 Denunciar post Postado Maio 14, 2010 Eliseu, Quando testei seu script tudo funcionou normalmente. Aí levei o código de JavaScript para o meu código e não consigo exibir o resultado. As diferenças entre meu código e o seu: Meus campos devalor estão em uma tabela e os nomes do campo estão em maiusculas como o código abaixo <td><input type="text" name="VALOR3" onkeyup="somar()"></td> Usei o seguinte código na função (colocada logo abaixo da tabela): campo3 = document.forms.VALOR3.value; O comando Total: <span id="total"></span> não funciona. Reitero que colei seu código original na paete do body do PHP e tudo funcionou. Só quando fui ajustar para meu layout é que deu pau. Se você tiver paciência e quiser olhar meu código todo, coloquei sua parte em negrito: Antecipadamente agradeço a ajuda <?php require_once('../../Connections/doctor.php'); ?> <?php require_once('../../Connections/doctor.php'); ?> <?php function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } ?> <?php require_once('../../Connections/doctor.php'); ?> <?php mysql_select_db($database_doctor, $doctor); $query_LOC_PROCEDIMENTOS = "SELECT PROCEDIMENTOS_ID, DESCRICAO FROM procedimentos"; $LOC_PROCEDIMENTOS = mysql_query($query_LOC_PROCEDIMENTOS, $doctor) or die(mysql_error()); $row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS); $totalRows_LOC_PROCEDIMENTOS = mysql_num_rows($LOC_PROCEDIMENTOS); ?> <?php require_once('../../Connections/doctor.php'); ?> <?php $colname_LOC_PACIENTE = "-1"; if (isset($_GET['paciente_inf'])) { $colname_LOC_PACIENTE = (get_magic_quotes_gpc()) ? $_GET['paciente_inf'] : addslashes($_GET['paciente_inf']); } mysql_select_db($database_doctor, $doctor); $query_LOC_PACIENTE = sprintf("SELECT PACIENTE_ID, NOME FROM paciente WHERE PACIENTE_ID = %s", $colname_LOC_PACIENTE); $LOC_PACIENTE = mysql_query($query_LOC_PACIENTE, $doctor) or die(mysql_error()); $row_LOC_PACIENTE = mysql_fetch_assoc($LOC_PACIENTE); $totalRows_LOC_PACIENTE = mysql_num_rows($LOC_PACIENTE); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Clinica Geller</title> <link href="../css/doctor.css" rel="stylesheet" type="text/css" /> <link type="text/css" rel="stylesheet" href="dhtmlgoodies_calendar/dhtmlgoodies_calendar.css?random=20051112" media="screen"></LINK> <script type="text/javascript" src="dhtmlgoodies_calendar/dhtmlgoodies_calendar.js?random=20060118"></script> </head> <body> <form method="POST" name="forms" target="_self" action="" id="forms"> <form name="forms"> <table width="700" border="0"> <tr> <td width="105">Data <input name="DATAEVENTO" type="text" id="DATAEVENTO" size="10" /></td> <td width="585"><input name="button" type="button" onclick="displayCalendar(document.forms[0].DATAEVENTO,'yyyy-mm-dd',this)" value="Calendário" src="../imagem/png/butao_120x20.png" /> </tr> <tr> <td>Cliente</td> <td><?php echo $row_LOC_PACIENTE['NOME']; ?></td> </tr> </table> <td> </td> <td> <table width="700" border="0"> <tr> <td width="180">Procedimento</td> <td width="510">Valor</td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td><select name="CODIGOEVENTO1" id="CODIGOEVENTO1"> <option value="">Selecione</option> <?php do { ?> <option value="<?php echo $row_LOC_PROCEDIMENTOS['PROCEDIMENTOS_ID']?>"><?php echo $row_LOC_PROCEDIMENTOS['DESCRICAO']?></option> <?php } while ($row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS)); $rows = mysql_num_rows($LOC_PROCEDIMENTOS); if($rows > 0) { mysql_data_seek($LOC_PROCEDIMENTOS, 0); $row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS); } ?> </select></td> <td><input type="text" name="VALOR1" onkeyup="somar()"> <span class="texto_vermelho_13_esquerda"> <input name="PACIENTE_ID" type="hidden" id="PACIENTE_ID" value="<?php echo $row_LOC_PACIENTE['PACIENTE_ID']; ?>" /> </span></td> </tr> <tr> <td><select name="CODIGOEVENTO2" id="CODIGOEVENTO2"> <option value="">Selecione</option> <?php do { ?> <option value="<?php echo $row_LOC_PROCEDIMENTOS['PROCEDIMENTOS_ID']?>"><?php echo $row_LOC_PROCEDIMENTOS['DESCRICAO']?></option> <?php } while ($row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS)); $rows = mysql_num_rows($LOC_PROCEDIMENTOS); if($rows > 0) { mysql_data_seek($LOC_PROCEDIMENTOS, 0); $row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS); } ?> </select></td> <td><input type="text" name="VALOR2" onkeyup="somar()"></td> </tr> <tr> <td><select name="CODIGOEVENTO3" id="CODIGOEVENTO3"> <option value="">Selecione</option> <?php do { ?> <option value="<?php echo $row_LOC_PROCEDIMENTOS['PROCEDIMENTOS_ID']?>"><?php echo $row_LOC_PROCEDIMENTOS['DESCRICAO']?></option> <?php } while ($row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS)); $rows = mysql_num_rows($LOC_PROCEDIMENTOS); if($rows > 0) { mysql_data_seek($LOC_PROCEDIMENTOS, 0); $row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS); } ?> </select></td> <td><input type="text" name="VALOR3" onkeyup="somar()"></td> </tr> <tr> <td><select name="CODIGOEVENTO4" id="CODIGOEVENTO4"> <option value="">Selecione</option> <?php do { ?> <option value="<?php echo $row_LOC_PROCEDIMENTOS['PROCEDIMENTOS_ID']?>"><?php echo $row_LOC_PROCEDIMENTOS['DESCRICAO']?></option> <?php } while ($row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS)); $rows = mysql_num_rows($LOC_PROCEDIMENTOS); if($rows > 0) { mysql_data_seek($LOC_PROCEDIMENTOS, 0); $row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS); } ?> </select></td> <td><input type="text" name="VALOR4" onkeyup="somar()"></td> </tr> <tr> <td><select name="CODIGOEVENTO5" id="CODIGOEVENTO5"> <option value="">Selecione</option> <?php do { ?> <option value="<?php echo $row_LOC_PROCEDIMENTOS['PROCEDIMENTOS_ID']?>"><?php echo $row_LOC_PROCEDIMENTOS['DESCRICAO']?></option> <?php } while ($row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS)); $rows = mysql_num_rows($LOC_PROCEDIMENTOS); if($rows > 0) { mysql_data_seek($LOC_PROCEDIMENTOS, 0); $row_LOC_PROCEDIMENTOS = mysql_fetch_assoc($LOC_PROCEDIMENTOS); } ?> </select></td> <td><input type="text" name="VALOR5" onkeyup="somar()"></td> </tr> <tr> <td> </td> <td> </tr> </table> <script type="text/javascript"> function somar(){ campo1 = document.forms.VALOR1.value; // PEGA VALORES DOS CAMPOS DO FORMULÁRIO COM NOME forms campo2 = document.forms.VALOR2.value; campo3 = document.forms.VALOR3.value; campo4 = document.forms.VALOR4.value; campo5 = document.forms.VALOR5.value; document.getElementById('total').innerHTML = (campo1 * 1)+(campo2 * 1)+(campo3 * 1)+(campo4 * 1)+(campo5 * 1); // EXECUTA A OPERAÇÃO MULTIPLICANDO CADA VALOR POR 1, PARA EVITAR CONCATENAÇÃO total: <span id="total"></span> } </script> <p> </p> <input type="hidden" name="MM_insert" value="form1"> </form> <script type="text/javascript"> function somar(){ campo1 = document.forms.VALOR1.value; // PEGA VALORES DOS CAMPOS DO FORMULÁRIO COM NOME forms campo2 = document.forms.VALOR2.value; campo3 = document.forms.VALOR3.value; campo4 = document.forms.VALOR4.value; campo5 = document.forms.VALOR5.value; document.getElementById('total').innerHTML = (campo1 * 1)+(campo2 * 1)+(campo3 * 1)+(campo4 * 1)+(campo5 * 1); // EXECUTA A OPERAÇÃO MULTIPLICANDO CADA VALOR POR 1, PARA EVITAR CONCATENAÇÃO total: <span id="total"></span> } </script> </body> </html> <?php mysql_free_result($LOC_PROCEDIMENTOS); mysql_free_result($LOC_PACIENTE); ?> Compartilhar este post Link para o post Compartilhar em outros sites
sob 0 Denunciar post Postado Maio 17, 2010 Resolvido ! Compartilhar este post Link para o post Compartilhar em outros sites
crbweb 0 Denunciar post Postado Setembro 21, 2010 Resolvido ! Eliseu, como eu faço para esse resultado aparecer em um campo total? desde ja agradeço Compartilhar este post Link para o post Compartilhar em outros sites