Foros del Web » Programando para Internet » Javascript »

SUMAR onclick

Estas en el tema de SUMAR onclick en el foro de Javascript en Foros del Web. Quiero que al hacer clic en unos div's, se sume su contenido en un input. Los divs són los sigientes: <div id="25585489" onclick="sumar()">50</div> <div id="97856235" ...
  #1 (permalink)  
Antiguo 04/09/2011, 11:29
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
SUMAR onclick

Quiero que al hacer clic en unos div's, se sume su contenido en un input.
Los divs són los sigientes:

<div id="25585489" onclick="sumar()">50</div>
<div id="97856235" onclick="sumar()">70</div>
<div id="25649823" onclick="sumar()">90</div>
<div id="89812845" onclick="sumar()">30</div>

NOTA: Los id son aleatorios

Entonces cuando se haga clic en un div, se ha de poner en un:
<input type="text" id="resultado_div" name="suma"/>

Como puedo poner el resultado, es decir que funcion deberia utilizar, es que no se casi nada de javascript y necesito hacer esto.

Mil gracias!!
  #2 (permalink)  
Antiguo 04/09/2011, 11:57
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: SUMAR onclick

Cita:
Iniciado por Zipus Ver Mensaje
Quiero que al hacer clic en unos div's, se sume su contenido en un input.
Los divs són los sigientes:

<div id="25585489" onclick="sumar()">50</div>
<div id="97856235" onclick="sumar()">70</div>
<div id="25649823" onclick="sumar()">90</div>
<div id="89812845" onclick="sumar()">30</div>

NOTA: Los id son aleatorios

Entonces cuando se haga clic en un div, se ha de poner en un:
<input type="text" id="resultado_div" name="suma"/>

Como puedo poner el resultado, es decir que funcion deberia utilizar, es que no se casi nada de javascript y necesito hacer esto.

Mil gracias!!
agregale NAME="divs[]" a los divs

<div id="89812845" NAME="divs[]" onclick="sumar()">30</div>

<script type="text/javascript">
var list = document.getElementsByName("divs");
var suma=0;
for(var i = 0; i < list.length; i++)
{
suma += parseInt((list[i].id));
//alert(list[i].id);
}
alert(suma);
</script>
  #3 (permalink)  
Antiguo 04/09/2011, 12:06
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

Muchas gracias por TODO!!

como se escribiria esto dentro del input..
  #4 (permalink)  
Antiguo 04/09/2011, 12:10
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: SUMAR onclick

te los sumo?
es asi:
..........
alert(suma);
document.getElementById('resultado_div').value=sum a;
  #5 (permalink)  
Antiguo 04/09/2011, 12:36
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

Gracias por todo, pero no me funciona.. sera que me he equivocado.

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function sumar() {
  3.     var list = document.getElementsByName("divs");
  4. var suma=0;
  5. for(var i = 0; i < list.length; i++)
  6. {
  7. suma += parseInt((list[i].id));
  8. //alert(list[i].id);
  9. }
  10. document.getElementById('resultado_div').value=suma;
  11. }
  12.  
  13. </script>

<input type="text" id="resultado_div" name="suma"/>

y los divs una vez en pantalla, son asi:

<div id="25585489" name="divs[]" onclick="sumar()">50</div>
<div id="97856235" name="divs[]" onclick="sumar()">70</div>
<div id="25649823" name="divs[]" onclick="sumar()">90</div>
<div id="89812845" name="divs[]" onclick="sumar()">30</div>

Pero todo el rato me sale 0 :(
  #6 (permalink)  
Antiguo 04/09/2011, 12:52
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: SUMAR onclick

hace esto:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     function sumar() {
  3.         var list = document.getElementsByName("divs");
  4.     var suma=0;
  5.     alert(list.length);
  6.     for(var i = 0; i < list.length; i++)
  7.     {
  8.     suma += parseInt((list[i].id));
  9.    
  10.     }
  11.     alert(suma);
  12.     document.getElementById('resultado_div').value=suma;
  13.     }
  14.      
  15.     </script>

mostrame que te devuelve suma y list.length
  #7 (permalink)  
Antiguo 04/09/2011, 12:55
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

Los dos me devuelven 0, estas seguro que eso suma el contenido de los div? xD
  #8 (permalink)  
Antiguo 04/09/2011, 13:01
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: SUMAR onclick

faltan los []

var list = document.getElementsByName("divs[]");
  #9 (permalink)  
Antiguo 04/09/2011, 13:04
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

ahora si que sale algo en el input, pero me sale la suma de todos los id

yo quiero que si hago click en uno me sume ese, no todos como ahora...
a parte el resultado no es del contenido de los divs, eso suma el contenido de los id
  #10 (permalink)  
Antiguo 04/09/2011, 13:06
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

es decir, esto:


<div id="25585489" name="divs[]" onclick="sumar()">50</div>
<div id="97856235" name="divs[]" onclick="sumar()">70</div>
<div id="25649823" name="divs[]" onclick="sumar()">90</div>
<div id="89812845" name="divs[]" onclick="sumar()">30</div>

es: 50+70+90+30=240
  #11 (permalink)  
Antiguo 04/09/2011, 13:14
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: SUMAR onclick

con js podes acceder a todos sus elementos como su contenido
hace esto para que te sume todos los valores
suma += parseInt((list[i].innerHTML));

ya tenes todo para pensar como acceder a cada valor

mostrame como genera el id automatico
  #12 (permalink)  
Antiguo 04/09/2011, 13:18
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

los id se muestran de la base de datos, que anteriormente se han introducido de con la funcion time() de php
  #13 (permalink)  
Antiguo 04/09/2011, 14:54
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: SUMAR onclick

y bueno mostrame como armas esto
<div id="25585489" name="divs[]" onclick="sumar()">50</div>
<div id="97856235" name="divs[]" onclick="sumar()">70</div>
<div id="25649823" name="divs[]" onclick="sumar()">90</div>
<div id="89812845" name="divs[]" onclick="sumar()">30</div>
  #14 (permalink)  
Antiguo 04/09/2011, 15:20
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

Código PHP:
Ver original
  1. if ( $r !== false && mysql_num_rows($r) > 0 ) {
  2.       while ( $a = mysql_fetch_assoc($r) ) {
  3. $created =    ($a['created']);
  4. $finno =        ($a['finn']);
  5. $finn = number_format($finno, 2, ",", ".");

y luego

Código PHP:
Ver original
  1. echo '<td class="excel4" ALIGN="center"><div id="'.$created.'" name="divs[]" onclick="sumar()">'.$finn.'</div></td>';
  #15 (permalink)  
Antiguo 05/09/2011, 08:56
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: SUMAR onclick

echo '<td class="excel4" ALIGN="center"><div id="'.$created.'" name="divs[]" onclick="sumar('.$finn.')">'.$finn.'</div></td>';

a sumar le agregue el valor a calcular, ya te di los metodos para obtener los valores y asignarlos
agregale a la funcion el parametro: function suma(valor){ alert(parseInt(valor)); }
  #16 (permalink)  
Antiguo 05/09/2011, 09:09
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: SUMAR onclick

No es más sencillo utilizar event delegates?
__________________
blog | @aijoona
  #17 (permalink)  
Antiguo 05/09/2011, 11:42
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

Ya he hecho lo de php y esto:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function sumar(valor) {
  3. var list = document.getElementsByName("divs[]");
  4. var suma=0;
  5. for(var i = 0; i < list.length; i++)
  6. {
  7. suma += parseInt((list[i].innerHTML));
  8. //alert(list[i].id);
  9. }
  10. document.getElementById('resultado_div').value=suma;
  11. }
  12.  
  13. </script>

Pero no se que tengo que hacer con { alert(parseInt(valor)); }

Gracias por la ayuda de verdad!

Y la info que encuentro sobre event delegation, esta en ingles :(
ademas creo que ya esta casi...
  #18 (permalink)  
Antiguo 05/09/2011, 11:50
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: SUMAR onclick

Basicamente es observar la interaccion desde un nivel superior, con lo cual te ahorras de crear/eliminar los handlers para todos los elementos (presentes o futuros)
__________________
blog | @aijoona
  #19 (permalink)  
Antiguo 05/09/2011, 13:11
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: SUMAR onclick

ve a la sección de addEventListener. aqui tienes otro ejemplo
  #20 (permalink)  
Antiguo 06/09/2011, 06:46
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function sumar(valor) {
  3. var list = document.getElementsById('resultado_div');
  4. var suma = parseInt(list) + parseInt(valor);
  5. document.getElementById('resultado_div').value=suma;
  6. }
  7.  
  8. </script>

Código PHP:
Ver original
  1. echo '<td class="excel4" ALIGN="center"><div id="'.$created.'" onclick="sumar('.$finno.')">'.$finn.'</div></td>';

Código HTML:
Ver original
  1. <input type="text" id="resultado_div" name="suma" size="7" value="0"/>

Que esty haciendo mal?
Perdon por la insistencia xD

Gracias!
  #21 (permalink)  
Antiguo 06/09/2011, 08:11
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: SUMAR onclick

sólo en esta línea tienes dos errores
Cita:
var list = document.getElementsById('resultado_div');
una vez que los corrijas ya puedes ponerte con la buena aportación de Aijoona. y si no lo entiendes prueba con lo que te dejo yo
  #22 (permalink)  
Antiguo 06/09/2011, 08:13
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

vale, pero como lo resuelvo?
  #23 (permalink)  
Antiguo 06/09/2011, 08:24
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: SUMAR onclick

Cita:
Iniciado por Zipus Ver Mensaje
vale, pero como lo resuelvo?
como un simple consejo. con esa actitud haces que lo que quieren ayudarte, desistan
  #24 (permalink)  
Antiguo 09/09/2011, 03:43
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

creo que lo estoy haciendo bien:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function sumar(valor) {
  3. var list = document.getElementsByName('suma').value;
  4. var suma = parseInt(list) + parseInt(valor);
  5. document.getElementById('resultado_div').value=suma;
  6. }
  7. </script>

Código HTML:
Ver original
  1. <input type="text" id="resultado_div" name="suma" size="7" value="0"/>

Código PHP:
Ver original
  1. echo '<td class="excel4" ALIGN="center"><div id="'.$created.'" onclick="sumar('.$finno.')">'.$finn.'</div></td>';

Lo que passa es que al hacer clic, el input me devuelve NaN

Me podeis ayudar :( !!
  #25 (permalink)  
Antiguo 09/09/2011, 03:51
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

Así es como sale mas tarde en el navegador (cliente), es decir si el usuario mira el codigo fuente:
Código HTML:
Ver original
  1. <td class="excel4" ALIGN="center"><div id="1315161129" name="divs[]" onclick="sumar(81985)">81.985,00</div></td>
  #26 (permalink)  
Antiguo 09/09/2011, 03:57
 
Fecha de Ingreso: junio-2010
Mensajes: 106
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: SUMAR onclick

Ya lo he solucionado:


Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function sumar(valor) {
  3. var list = document.res.suma.value;
  4. // var list = document.getElementsByName('suma');
  5. var suma = parseInt(list) + parseInt(valor);
  6. document.getElementById('resultado_div').value=suma;
  7. }
  8. </script>


Gracias a todos por vuestra ayuda!!
  #27 (permalink)  
Antiguo 10/11/2011, 21:38
 
Fecha de Ingreso: septiembre-2010
Mensajes: 9
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: SUMAR onclick

Zipus, podrias compartir el codigo? gracias!!

Etiquetas: input, php, resultados
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 18:26.