Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/10/2014, 16:54
Avatar de MLDGATO
MLDGATO
 
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 2 meses
Puntos: 2
Pregunta Función que sume numeros y el resultado lo muestre de forma automática

Hola estoy modificando los datos de una base de datos con php, dichos datos son 6 números os cuales al sumarlos me tiene que dar 100, la idea es que tengo un formulario con 6 inputs los cuales obtiene el value por medio de php y en el body tengo una función con el evento OnLoad que me llama a la función suma y esta toma los valores de los inputs y los suma, hasta aquí voy bien y en cada input coloque el evento OnChange que me llama a la misma función para que me valla mostrando el resultado segun cambio los valores de cada input, este es el código que tengo:

Código HTML:
Ver original
  1. <body class="fondogris" onLoad="suma()">
  2. <div id="ContenidoPruebas">
  3. <form id="Prueba" name="Prueba" method="post">
  4.   <h3>Modificar el resultado del test de Toma de decisiones.</h3>
  5.   <p>&nbsp;</p>
  6. <p><strong>Postulante:</strong> <?php echo $fila['Nombres']." ".$fila['Apellidos']; ?></p>
  7. <p>&nbsp;</p>
  8. <p style="width:375px; text-align:justify;"><strong>Nota:</strong> Importante, para modificar los datos de este test los valores deben dar un total del 100% de lo contrario no podrá hacer la modificación.</p>
  9. <p>&nbsp;</p>
  10. <table width="550" align="center" cellspacing="5">
  11.   <tbody>
  12.     <tr>
  13.       <td width="315"><label for="PadreCritico">Padre Critico:</label></td>
  14.       <td width="164" align="right"><label for="Total">% Total:</label></td>
  15.     </tr>
  16.     <tr>
  17.       <td><input name="PadreCritico" type="number" required="required" class="datos" id="PadreCritico" max="100" min="0" value="<?php echo $ttd['PadreCritico']; ?>" onChange="suma()"></td>
  18.       <td align="right"><input name="Total" type="text" class="datosmenor3" id="Total"></td>
  19.     </tr>
  20.     <tr>
  21.       <td><label for="PadreNutritivo2">Padre Nutritivo:</label></td>
  22.       <td>&nbsp;</td>
  23.     </tr>
  24.     <tr>
  25.       <td><input name="PadreNutritivo" type="number" required="required" class="datos" id="PadreNutritivo" max="100" min="0" value="<?php echo $ttd['PadreNutritivo']; ?>" onChange="suma()"></td>
  26.       <td>&nbsp;</td>
  27.     </tr>
  28.     <tr>
  29.       <td><label for="Adulto2">Adulto:</label></td>
  30.       <td>&nbsp;</td>
  31.     </tr>
  32.     <tr>
  33.       <td><input name="Adulto" type="number" required="required" class="datos" id="Adulto" max="100" min="0" value="<?php echo $ttd['Adulto']; ?>" onChange="suma()"></td>
  34.       <td>&nbsp;</td>
  35.     </tr>
  36.     <tr>
  37.       <td><label for="NinoSumiso2">Niño Sumiso:</label></td>
  38.       <td>&nbsp;</td>
  39.     </tr>
  40.     <tr>
  41.       <td><input name="NinoSumiso" type="number" required="required" class="datos" id="NinoSumiso" max="100" min="0" value="<?php echo $ttd['NinoSumiso']; ?>" onChange="suma()"></td>
  42.       <td>&nbsp;</td>
  43.     </tr>
  44.     <tr>
  45.       <td><label for="NinoLibre">Niño Revelde:</label></td>
  46.       <td>&nbsp;</td>
  47.     </tr>
  48.     <tr>
  49.       <td><input name="NinoRevelde" type="number" required="required" class="datos" id="NinoRevelde" max="100" min="0" value="<?php echo $ttd['NinoRevelde']; ?>" onChange="suma()"></td>
  50.       <td>&nbsp;</td>
  51.     </tr>
  52.     <tr>
  53.       <td><label for="NinoLibre">Niño Libre:</label></td>
  54.       <td>&nbsp;</td>
  55.     </tr>
  56.     <tr>
  57.       <td><input name="NinoLibre" type="number" required="required" class="datos" id="NinoLibre" max="100" min="0" value="<?php echo $ttd['NinoLibre']; ?>" onChange="suma()"></td>
  58.       <td>&nbsp;</td>
  59.     </tr>
  60.     <tr>
  61.       <td colspan="2" align="center"><input name="submit" type="submit" class="botonform" id="submit" value="Modificar"></td>
  62.       </tr>
  63.   </tbody>
  64. <img src="../../Imagenes/Postulantes/<?php echo $seccion7['Imagen']; ?>" width="150" height="150" />
  65. </form>
  66. $("#Prueba").validate();
  67. </div>
  68. </body>

La función es:

Código Javascript:
Ver original
  1. function suma()
  2. {
  3.     PC = parseInt(document.getElementById("PadreCritico").value);
  4.     PN = parseInt(document.getElementById("PadreNutritivo").value);
  5.     A = parseInt(document.getElementById("Adulto").value);
  6.     NS = parseInt(document.getElementById("NinoSumiso").value);
  7.     NR = parseInt(document.getElementById("NinoRevelde").value);
  8.     NL = parseInt(document.getElementById("NinoLibre").value);
  9.    
  10.     suma = PC+PN+A+NS+NR+NL;
  11.    
  12.     document.getElementById("Total").value = suma;
  13.    
  14. }

Como ven en el body está la función con el evento OnLoad, ahí me funciona, pero en el Onchange de los inputs ahí no, muchas gracias por la orientación.