Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/04/2020, 14:01
tuadmin
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Suma de tabla dinamica

primero tienes que crear el escucha del EVENTO en javascript, luego, tratar de identificar el el INput de Entrada, y el de salida, para ello, cada Elemento HTML deberia ir Identificado

y con ello creo que lo mejor es que cambies un poco el HTML que te da PHP

por que el atributo ID de un elemento html debe ser UNICO ya que se considera como identificador,

bueno lo bueno es que javascript no es estricto, te dejo las funciones que necesitaria tu codigo, son funciones apra navegadores modernos, si queires adaptala para navegadores antiguos

recuerda que el "script" debe ir al final de tu tabla ,
el codigo puede contener errores de sintaxys, no hagas copy paste, solo comprende y si ay funciones no que no entiendas como funciona, GOOGLEA
Código HTML:
Ver original
  1. <script type="text/javascript">
  2.   //creamos la funcion de Evento "input" sucesor del "change"
  3.   function escucharInputDeCantidad(evento){
  4.     var input_cantidad= evento.target;//necesitamos saber que Input es para Obter su PADRE = td luego el padre del padre TR , el cual contiene el resultado
  5.     var tr = input_cantidad.parentElement.parentElement;
  6.     var input_subtotal=tr.querySelector('#SUBTOTAL_CU');
  7.     var input_unitario=tr.querySelector('#UNITARIO');
  8.    
  9.     //ahora hacemos la mutiplicacion con valores
  10.     let variable_cantidad = ParseInt(input_cantidad.getAttribute('value'));
  11.     //comprobamos que  sea un numero valido en la cantidad
  12.     if(variable_cantidad<1){ return ; }
  13.  
  14.    let subtotal = ParseFloat(input_unitario.getAttribute('value')) * variable_cantidad;
  15.    //El subtotal lo enviamos al INPUT correspondiente
  16.    input_subtotal.setAttribute('value',subtotal);
  17.    //buscamos
  18.    //Ahora para ejecutamos la Funcion para Calcultar el TOTAL global
  19.    obtenerElTotal();
  20.  }
  21.  function obtenerElTotal(){
  22.    var total=0;
  23.    document.querySelectorAll('tr input#SUBTOTAL_CU').forEach(function(subtotal_input){
  24.      let subtotal= ParseFloat(subtotal_input.getAttribute());
  25.      if(subtotal>0){
  26.         total = total + subtotal;
  27.       }
  28.     ;});
  29.     alert(total);
  30.   }
  31.   //elegimos todos los elementos input ( name="cantidad[]") y le añadimos el EVENTO de "input" sucesor del "change"
  32.   document.querySelectorAll('tr #CANTIDAD').forEach(function(el_input){
  33.     el_input.addEventListener('input',escucharInputDeCantidad);
  34.   ;})
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9