Ver Mensaje Individual
  #10 (permalink)  
Antiguo 14/01/2013, 06:38
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Calculos de campos dinamicos (php+js)

Cita:
Iniciado por sergiolimo. Ver Mensaje
No doy pie con bola con esto, estoy intentando algo asi (lo modifique un poco para presentarlo limpio pero la idea es esta):

function calcula(i)
{
valor = document.getElementById('descuento['+I+']').value;
cantidad = document.getElementById('cantidad['+I+']').value;
precio = document.getElementById('precio['+I+']').value;
total = (cantidad * precio) - (valor * (cantidad * precio) / 100);
document.getElementById('titulo['+I+']').value = total;
}

...


<? for ($x=0; $x<$valorx; $x++) { ?>

<input type="text" name="cantidad[]" id="cantidad[]" value="<? echo $cantidad[$l]; ?>" size="8" maxlength="8" />
<input type="text" name="descuento[]" id="descuento[]" value="" onclick="calcula('.$l.')" size="8" maxlength="8" />
<input type="text" name="precio[]" id="precio[]" value="<? echo $precio[$l]; ?>" size="8" maxlength="8" />
<input type="text" name="total[]" id="total[]" value="" size="8" maxlength="8" />

<? ...
} ?>

como ven el js no es mi fuerte, tengo todo en php y solo necesito ese calculo para editar en vivo, estuve viendo en varios lugares y vi que hay muchas formas radicalmente diferentes de mostrar lo mismo pero aun no entiendo como hacer que funcione...
Primero sería bueno que nos muestres como te quedó el html generado tras hacer lo que te indicaron previamente (abrís la página en el navegador y ves el código fuente.

Ahora yendo a tu función js se detectan varios errores, fijate

calcula() recibe un parámetro i --> calcula(i)

Sin embargo luego hacés
valor = document.getElementById('descuento['+I+']').value;
y está recibiendo I (en mayúsculas), te recuerdo que js es "case sensitive", diferencia may de minusc.
Por otro lado los id deben ser únicos, asi que eso de utilizar los corchetes para construir el id está mal (sería para name en todo caso)
Pero insisto, hay que ver como te quedó el html generado

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.