Ver Mensaje Individual
  #11 (permalink)  
Antiguo 14/01/2013, 08:40
Avatar de sergiolimo.
sergiolimo.
 
Fecha de Ingreso: julio-2006
Ubicación: Yakarta
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Calculos de campos dinamicos (php+js)

Muchas gracias emprear, ya di con una solucion que me funciona perfectamente, y es la siguiente por si alguien tiene el mismo problema, incluso dejo como poner los datos con 2 decimales, que no se envie con enter y que al tocar tab se seleccionen solo los campos editables, espero sirva de ayuda:

(perdonen que esta con los "echo" de php pero copie y pegue de mi codigo)

function calcular(cual)
{
caja=document.forms["sumar"].elements;
subtotal=Number(caja["subtotal"+cual].value);
cantidad=Number(caja["cantidad"+cual].value);
lista=Number(caja["lista"+cual].value);
dcto=Number(caja["descuento"+cual].value)/100;

total_unitario=lista-(lista*dcto);
total_final=total_unitario*cantidad;

total_unitario=total_unitario.toFixed(2);
caja["subtotal"+cual].value=total_unitario;
total_final=total_final.toFixed(2);
caja["total"+cual].value=total_final;
}

function pulsar(e) {
tecla = (document.all) ? e.keyCode :e.which;
return (tecla!=13);

y en los input:

echo '<td width=40><input name="cantidad'.$l.'" type="text" value=1 onkeyup="calcular('.$l.')" onClick="this.select()" tabindex="'.(($l*2)+1).'" onkeypress="return pulsar(event)" size="8" maxlength="8" /></td><td width=15>'.$unidad_vta_pedido.'</td>';
echo '<td width=40><input type="text" name="lista'.$l.'" id="lista'.$l.'" value="'.$lista_precio_decimales.'" readonly="readonly" style="border:0" onkeypress="return pulsar(event)" size="8" maxlength="8" /></td>';
echo '<td width=40><input type="text" name="descuento'.$l.'" id="descuento'.$l.'" value="0" onkeyup="calcular('.$l.')" onClick="this.select()" tabindex="'.($l*2+2).'" onkeypress="return pulsar(event)" size="8" maxlength="8" /></td>';
echo '<td width=40><input type="text" name="subtotal'.$l.'" id="subtotal'.$l.'" value="'.$lista_precio_decimales.'" onkeyup="calcular('.$l.')" readonly="readonly" style="border:0" onkeypress="return pulsar(event)" size="8" maxlength="8" /></td>';
echo '<td width=40><input type="text" name="total'.$l.'" id="total'.$l.'" value="'.$lista_precio_decimales.'" readonly="readonly" style="border:0" onkeypress="return pulsar(event)" size="8" maxlength="8" /></td>';



$l es una variable de for que va desde 0 hasta un numero variable
__________________
Una mujer en bicicleta, con sombrero de paja, es la mas flagrante violación a las leyes de la aerodinámica

Corralon de materiales

Última edición por sergiolimo.; 14/01/2013 a las 08:50