Foros del Web » Programando para Internet » Javascript »

necesito sumar y me concatena!!

Estas en el tema de necesito sumar y me concatena!! en el foro de Javascript en Foros del Web. Hola, quisiera saber porque no me suma.......gracias! <script> function calculo(campo){ var totalfinal; var Total; gTotal = parseInt( document.getElementById('totalGeneral').value); pCantidad = document.getElementById(['prd'+campo]).value; tListado = document.getElementById('listado').value; pPrecio ...
  #1 (permalink)  
Antiguo 15/07/2008, 20:45
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
necesito sumar y me concatena!!

Hola, quisiera saber porque no me suma.......gracias!

<script>

function calculo(campo){

var totalfinal;
var Total;


gTotal = parseInt( document.getElementById('totalGeneral').value);
pCantidad = document.getElementById(['prd'+campo]).value;
tListado = document.getElementById('listado').value;
pPrecio = parseInt(document.getElementById(['txt'+campo]).value);

subTotal = pCantidad*pPrecio;

document.getElementById(['subto'+campo]).value = subTotal;


valor = document.getElementById(['subto'+campo]).value;
Total = Total + valor;
document.getElementById('totalGeneral').value = Total;



}
</script>
  #2 (permalink)  
Antiguo 15/07/2008, 22:16
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: necesito sumar y me concatena!!

Hola nataliasoria:

Hay varias cosas que no entiendo:
¿Por qué a document.getElementById() le pasas a veces un String y a veces un Array? Lo correcto es siempre String...
Cuando haces Total = Total + valor; ¿Qué era Total antes? ¿No era undefined? Además, valor es un String, lo que me lleva a la siguiente cuestión:
¿Por qué haces parseInt() a algunos valores y otros no? Si son números y quieres sumarlos debes convertirlos a números, pero todos, no sólo algunos (bien con parseInt(), parseFloat(), Number(), o incluso los he visto que multiplican por la unidad al String :S ).



Veo demasiadas cosas raras como para que funcione...
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 15/07/2008, 22:20
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: necesito sumar y me concatena!!

ya pude solucionarlo, solo que ahora tengo que ver como hacer porque si me modifican algun valor sigue suamandolo, debería restarle el valor anterior y luego sumarle el nuevo.....(son valores dinamicos que traigo desde el php)

<script>

function calculo(campo){

var totalfinal;


gTotal = isNaN( document.getElementById('totalGeneral').value) || document.getElementById('totalGeneral').value=="" ? "0" : document.getElementById('totalGeneral').value;
pCantidad = document.getElementById(['prd'+campo]).value;
tListado = document.getElementById('listado').value;
pPrecio = parseInt(document.getElementById(['txt'+campo]).value);

subTotal = pCantidad*pPrecio;


document.getElementById(['subto'+campo]).value = subTotal;

// valor = parseInt(document.getElementById(['subto'+campo]).value);
gTotal = parseInt(gTotal) + subTotal;


document.getElementById('totalGeneral').value = gTotal;


}
</script>
  #4 (permalink)  
Antiguo 15/07/2008, 22:29
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: necesito sumar y me concatena!!

Hola de nuevo:

No sé si has pasado de mi, o te gusta auto responderte pasando por alto los demás posts, pero... ¿has leído mi respuesta?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 15/07/2008, 22:39
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: necesito sumar y me concatena!!

ahora la he leido, y tienes razon..

respondi cuando aun no vi tu respuesta.


respecto a lo que me preguntas de porque a veces paso un string y a veces un array, es porque estoy mostrando productos que fueron seleccionados previamente mediante php, entonces al ser dinamico el resultado de alguna manera tenia que indicar que ese valor.

yo tengo la cantidad del producto, e ingreso manualmente el precio del producto, y es ahi donde genero el calculo.


lo intentare, gracias.
  #6 (permalink)  
Antiguo 16/07/2008, 00:57
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: necesito sumar y me concatena!!

A lo que se refiere derkenuke en su primera pregunta es a que NO hagas esto:
Código:
document.getElementById(['subto'+campo]).value
Sino que hagas esto:
Código:
document.getElementById('subto'+campo).value
Por cierto, una recomendación. Además de hacer parseInt o parseLong como dice derkenuke, cuando hagas parseInt, ponle la base 10:
Código:
alert(parseInt("025"));
alert(parseInt("025",10));
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:36.