Foros del Web » Programando para Internet » Javascript »

Autocompletar campo con Suma de otros campos

Estas en el tema de Autocompletar campo con Suma de otros campos en el foro de Javascript en Foros del Web. Hola Bueno, eso que dice el título. No tengo mucha idea de javascript, y quería que me orienten un poco. La cuestión es: actualizar la ...
  #1 (permalink)  
Antiguo 09/10/2010, 14:39
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Autocompletar campo con Suma de otros campos

Hola
Bueno, eso que dice el título.
No tengo mucha idea de javascript, y quería que me orienten un poco.
La cuestión es: actualizar la fecha de un torneo de futbol.
Lo que quiero es que a medida que voy poniendo la cantidad de goles que hizo cada jugador, en otro campo se vayan sumando los goles de todos los jugadores de cada equipo, de manera de no tener que poner el resultado manualmente.

Actualmente tengo la página de administración funcionando en base a php, pero me gustaria ir agregando algunas cositas y de paso ir aprendiendo un poco de javascript.

Muchas gracias por sus respuestas
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #2 (permalink)  
Antiguo 09/10/2010, 14:47
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Autocompletar campo con Suma de otros campos

¿Y cuándo quieres que se sumen los campos?
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 09/10/2010, 15:16
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Respuesta: Autocompletar campo con Suma de otros campos

Hola _cronos2
Quiero que el campo "goles Equipo" se vaya actualizando a medida que vaya poniendo los goles convertidos por cada jugador.
¿Se puede hacer sin tener que poner un botón que me realice la suma?

Te dejo una imagen de lo que estoy haciendo en php, por eso quiero evitar el tener que poner manualmente el resultado final, para evitar errores e incongruencias, por ejemplo puede que la suma de todos los jugadores de un equipo sea de 15 goles, pero por error ponga en el resultado final 14.
Sé como verificarlo con php, pero quiero evitar el tener que actualizar la página.



Gracias
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #4 (permalink)  
Antiguo 09/10/2010, 15:17
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Autocompletar campo con Suma de otros campos

con el evento onkeyup en cada campo, llamas a una función. a esta función le pasas dos valores (event y el valor del campo), también necesita una variable global. event lo necesitas por si haces un retroceso(8). busca por el término keyCode para saber el valor de la tecla pulsada. en caso que sea el retroceso tienes que llamar a otra función para recorrer todos los campo y hacer la suma de sus valores, con este valor reescribes el valor de la variable global. en caso que no sea la tecla de retroceso, le sumas el valor del campo a la variable global. con el valor de esta variable rellenas el campo en el que quieres mostrar el total
  #5 (permalink)  
Antiguo 09/10/2010, 16:43
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Autocompletar campo con Suma de otros campos

Ejemplo:
Código HTML:
Ver original
  1. <form name="a" action="" method="post">
  2. 1:<input type="text" id="sum_1" value="0" onkeyup='sumar(this);' onkeydown='sumar(this);' onfocus="val(this,'','0');" onblur="val(this,'0','');" /><br />
  3. 2:<input type="text" id="sum_2" value="0" onkeyup='sumar(this);' onkeydown='sumar(this);' onfocus="val(this,'','0');" onblur="val(this,'0','');" /><br />
  4. 3:<input type="text" id="sum_3" value="0" onkeyup='sumar(this);' onkeydown='sumar(this);' onfocus="val(this,'','0');" onblur="val(this,'0','');" /><br />
  5. 4:<input type="text" id="sum_4" value="0" onkeyup='sumar(this);' onkeydown='sumar(this);' onfocus="val(this,'','0');" onblur="val(this,'0','');" /><br />
  6. 5:<input type="text" id="sum_5" value="0" onkeyup='sumar(this);' onkeydown='sumar(this);' onfocus="val(this,'','0');" onblur="val(this,'0','');" /><br />
  7. 6:<input type="text" id="sum_6" value="0" onkeyup='sumar(this);' onkeydown='sumar(this);' onfocus="val(this,'','0');" onblur="val(this,'0','');" /><br />
  8. Resultado:<input type="text" id="res" value='0' onfocus='this.blur();' />
  9. </form>
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function sumar(c){
  3.  var total=0;
  4.  for(i=0;input=c.form.elements[i];i++){
  5.   if(/^sum_/.test(input.id)){
  6.    input.value=input.value.replace(/[A-z]/,'');
  7.    total+=parseInt(input.value);
  8.   }
  9.  }
  10.  document.getElementById('res').value=isNaN(total)?document.getElementById('res').value:total;
  11. }
  12. function val(c,v,t){
  13.  c.value=c.value==t?v:c.value;
  14. }
  15. </script>
Como ves para que funcione tienes que poner sum_ al principio de la id de cada input a sumar, los que no empiecen por esa id no serán tomados en cuenta (puedes probarlo con hiddens, campos ocultos, etc. dándoles un value predefinido y verás que no se suma). También ves que el value del campo es 0 por defecto, y si recibe el foco se borra, y si pierde el foco pone 0 si el value es ''. También ves isNaN(total)... Esto es porque si pones una letra en el input te la borra en seguida, pero antes de que te la borre el value del campo resultado es NaN, y queda poco estético. Así, si escribes una letra el value del campo es el que tenía antes. Si tienes alguna duda más dímelo.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #6 (permalink)  
Antiguo 09/10/2010, 17:56
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Respuesta: Autocompletar campo con Suma de otros campos

Muchas gracias IsaBelM y _cronos2.
No esperaba el script, pero la verdad que te lo agradezco mucho _cronos2.

Ahora no me queda más que modificar el php para que genere los campos con lo necesario para el javascript.

Muchas gracias a ambos
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--

Etiquetas: campos, suma, autocompletado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:33.