Foros del Web » Programando para Internet » Javascript »

Mostrar suma segun input

Estas en el tema de Mostrar suma segun input en el foro de Javascript en Foros del Web. Hola Amigos Estoy hace unos dias con esto y no lo puedo resolver , estuve leyendo algo de javascript y jquery pero no me sale ...
  #1 (permalink)  
Antiguo 23/04/2011, 13:16
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Mostrar suma segun input

Hola Amigos Estoy hace unos dias con esto y no lo puedo resolver , estuve leyendo algo de javascript y jquery pero no me sale
Tengo este codigo:
Código Javascript:
Ver original
  1. var su = 0;
  2.          
  3.          $('.iva').val(function() {
  4.          
  5.          su += parseFloat(this.innerHTML);
  6.        
  7.         $(".v").html(su);
  8.        
  9.        });
lo que necesito hacer es que el resultado (su) lo vaya sumando y mostrando en la columna siguiente que le corresponda

http://www.sincroniavirtual.com/nuevo/

si en iva% dice 21.000 , que lo vaya sumando en I.V.A. Insc.% / 21.000/columna siguiente
realmente necesito de su ayuda , espero haberme explicado bien
Muchas gracias
  #2 (permalink)  
Antiguo 23/04/2011, 14:22
Avatar de Danielfuzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 111
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Mostrar suma segun input

Talvez deberias un poco mas claro al exponer tu problema, ir sumando que??? de donde salen esos valores a sumar?? que vento ocurre para que te dé la suma??

etc., etc
  #3 (permalink)  
Antiguo 23/04/2011, 14:30
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Mostrar suma segun input

necesito que se vaya sumando el IVA a medida que el usuario ingrese productos
pero por separado, tengo 2 columnas generadas dinamicamente con php
en una esta el 21.000 y en la otra columna 10.500;
cada producto tiene el 21.000 o el 10.500 , entonces cuando el usuario va agregando productos , necesito que el iva se vaya sumando en la columna que le corresponde segun el iva que tenga el producto
aca deje el ejemplo http://www.sincroniavirtual.com/nuevo/
por favor no me abandones
Gracias
  #4 (permalink)  
Antiguo 23/04/2011, 14:32
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Mostrar suma segun input

No quiero que me den el codigo echo
simplemente que me ayuden a usar la logica para resolverlo
  #5 (permalink)  
Antiguo 23/04/2011, 15:03
Avatar de Danielfuzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 111
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Mostrar suma segun input

ok dame un momento
  #6 (permalink)  
Antiguo 23/04/2011, 15:26
Avatar de Danielfuzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 111
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Mostrar suma segun input

hola, talvez loq ue podrias hacer es que cada vez que insertes la nueva fila a la tabla llames a una funcion que te coja el valor de la columna .iva y que te sume con el valor de la columna precio, loq ue haces en el codigo que posteaste tiene algunas fallas, talvez deberias hacerlo así




Código:
  var su = parseFloat($('.iva').val())+parseFloat($('.precio').val());


    $(.precio).html(su);

si esto es para los datos totales finales de abajo funcinará, para cada fila deberías anadir un identificador mas a cada fila por ejemplo

<tr id="fila00">
<td class=".iva"></td>
</tr>

entonces accederias a esa celda de esta manera: $("#fila00 td.iva")

te pego un script para que te guies un poco mejor con jquery:

Código HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="cic/js/jquery-1.5.2.js"></script>
<script type="text/javascript">
	$(document).ready(function(){
		$('.precio').change(generarSubIva);
	});
	
	function generarSubIva()
	{
		var iva=parseFloat($(this).parent().parent().find(".iva").val());
		$(this).parent().parent().find(".final").val(parseFloat($(this).val())*iva/100);
		
		var total=0;	
		$(".final").each(function(){
			total += parseFloat($(this).val());
		});
		
		$("#finalIva").val(total);
	}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>

<table id="tablaProductos">
	<tr>
    	<th>Producto</th>
        <th>Precio</th>
        <th>IVA</th>
        <th>Final</th>
    </tr>
	<tr>
    	<td>CAlzoncillos</td>
        <td><input class="precio" type="text" value="" /></td>
        <td><input class="iva" type="text" readonly="readonly" value="21.00"/>%</td>
        <td><input class="final" type="text" value="0" readonly="readonly" /></td>
    </tr>
    <tr>
    	<td>Zapatos</td>
        <td><input class="precio" type="text" value="" /></td>
        <td><input class="iva" type="text" readonly="readonly" value="21.00"/>%</td>
        <td><input class="final" type="text" value="0" readonly="readonly" /></td>
    </tr>
    <tr>
    	<td>fdsf</td>
        <td><input class="precio" type="text" value="" /></td>
        <td><input class="iva" type="text" readonly="readonly" value="21.00"/>%</td>
        <td><input class="final" type="text" value="0" readonly="readonly" /></td>
    </tr>
    <tr>
    	<td>fgsdfg</td>
        <td><input class="precio" type="text" value="" /></td>
        <td><input class="iva" type="text" readonly="readonly" value="21.00"/>%</td>
        <td><input class="final" type="text" value="0" readonly="readonly" /></td>
    </tr>
    <tr>
    	<td colspan="3"></td>
        <td><input id="finalIva" type="text" value="" /></td>
    </tr>
</table>


</body>
</html> 
si siguen existiendo dudas me avisas, y no olvides el karma.

Gracias
  #7 (permalink)  
Antiguo 23/04/2011, 15:31
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Mostrar suma segun input

Buenisimo gracias
en este momento estoy probando todo de nuevo
como te doty karma?
  #8 (permalink)  
Antiguo 23/04/2011, 15:50
Avatar de Danielfuzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 111
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Mostrar suma segun input

para el karma fijate en la parte inferior derecha de cada uno de mis mensajes hay una flecha negra para arriba, clickea ahí y te llevará a otra página donde podrás darme karma.
  #9 (permalink)  
Antiguo 23/04/2011, 15:52
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Mostrar suma segun input

Hola de nuevo , el tema de sacar el % del iva al producto ya lo tengo resuelto , lo que necesito que me ayudes es a ubicar el porcentaje del iva en una columna
diferenciar si ese producto tiene el 21.000% o el 10.500% u otros,y ubicarlos en su respectiva columna segun
me indique lo que se esta obteniendo desde la bd
subi el ejemplo aca http://www.sincroniavirtual.com/nuevo/
en buscar articulo pones 711 , lo agregas y despues pone 710 y tambien lo agregas
estos dos productos tienen el 10.500 y el 21.000 respectivamente
al agregar los dos fijate que me los esta sumando todo junto y no por separado
ejem (tendria que quedarme algo asi)
|21.000% | $45.25|
|10.500%| 15.28|
Muchas gracias nuevamente
  #10 (permalink)  
Antiguo 23/04/2011, 16:43
Avatar de Danielfuzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 111
Antigüedad: 16 años, 6 meses
Puntos: 18
Pregunta Respuesta: Mostrar suma segun input

bueno algo que se me ocurre por ahora es que en la celda de tu I.V.A. Insc.% puedas crear etiquetas <span> dianmicamente para cada IVA diferente. que tendrian talvez una estructura así

<span id="iva21.000">21.000%: <span class="total">4353</span></span>

La lógica sería esta:
  1. Al momento de ingresar la nueva fila a tu tabla de articulos capturas de alguna forma el IVA (digamos capturaste 10.50)
  2. Con alguna funcion verificas si existe el span para esa IVA (en este caso 'span10.50')
  3. Si Existe recuperas el valor del span con el className "total" y lo sumas al valor de tu columna "%" y actualizas el span total con ese nuevo valor; Si no existe el span del IVA en cuestión lo creas y le asignas el valor de tu %

espero entiendas la lógica, me avisas cualquier cosa.

Saludos
  #11 (permalink)  
Antiguo 23/04/2011, 17:41
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Mostrar suma segun input

Buenisimo!!! eso era lo que necesitaba
en realidad yo estaba haciendo algo parecido pero siempre me trabo cuando tengo que comparar
<span id="iva21.000">21.000%</span>
con el que capturo cuando agrego una fila , lo que pasa que en este caso es <span id="iva21.000">21.000%</span> pero puede ser cualquier otro ya que el iva lo crea el usuario desde otro lado y despues lo muestra cuando se esta ingresando productos, en definitiva tenes algun ejemplo basico de como puedo comparar el iva que se esta agregando junto con el articulo y el que ya esta previamente en el span?
(2.Con alguna funcion verificas si existe el span para esa IVA (en este caso 'span10.50')
muchas gracias por tu tiempo (ya te agregue karma)
  #12 (permalink)  
Antiguo 23/04/2011, 23:04
Avatar de Danielfuzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 111
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Mostrar suma segun input

Hola talvez esto te ayude, no sé como estés manejando la creación de tu nueva fila pero supongo que de alguna forma se debe poder obtener el IVA y de esa manera calcular el procentaje, yo me estoy saltando ese paso ya que no se como lo manejes y directamente estoy enviando los datos a la funcion actualizarIVA que funciona de la siguiente manera:
  1. la funcion recibe 2 parametros "IVA" que es el valor de tu IVA, y "valor" que es el porcentaje calculado con el precio del prodcutos(s) y el IVA
  2. la funcion reemplaza el punto por un caracter para no tener problemas a la hora de asignar el id.
  3. luego la funcion veriifca si el span para ese monto de IVA existe, si existe coge el valor actual que tiene y lo suma al valor enviado a al función: si no existe crea la etiqueta span con el monto que enviaste a la funcion

Código HTML:
<!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>
<script type="text/javascript" src="cic/js/jquery-1.5.2.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
	jQuery.fn.exists = function(){return jQuery(this).length>0;}

	function actualizarIVA(iva,valor){
		id=iva.toString();
		id=id.replace(".","p");
		if($('#iva'+id).exists())
		{
			var valorActual=parseFloat($('#iva'+id+' span.total').text());
			$('#iva'+id+' span.total').text(valorActual+valor);
		}
		else
		{
			$('#iva').append('<span id="iva'+id+'">'+iva+'%: <span class="total">'+valor+'</span></span><br>');
		}
	}
	$(document).ready(function(){	
		
		actualizarIVA(21.30, 12.45); //No existe 21.30 entonces lo agregará
		actualizarIVA(21.30, 10); //Ya existe un span para 21.30 entonces sumará un total 22.45
		
		actualizarIVA(15.00, 10);
	});
</script>
<title>Documento sin título</title>
</head>

<body>
	<table style="border:#000 1px solud">
    	<tr>
        	<th>I.V.A. Insc.%</th>
        </tr>
        <tr>
        	<td id="iva" style="width:300px"></td>
        </tr>
    </table>
</body>
</html> 
Espero te sirva.

Talvez tuviste problemas al comparar porq tu id tenia punto (id="21.000") y el jquery toma ese punto como una clase así que por eso hice el reemplazo del punto por un caracter.

No olvides el karma (adicto al karma) y gracias por los anteriores aunq todavía no se refleje mi karma actual en mi perfl
  #13 (permalink)  
Antiguo 24/04/2011, 04:26
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Mostrar suma segun input

Perfecto eso era lo que necesitaba!!!
Muchas gracias!!!
(te segui agregando karma)
Saludos

Etiquetas: input, suma
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:16.