PHP - Suma de Inputs con resultado automático dentro de un while

 
Vista:
sin imagen de perfil
Val: 32
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Suma de Inputs con resultado automático dentro de un while

Publicado por guillermo (14 intervenciones) el 27/02/2021 04:45:35
intento hacer una función de autosuma en un formulario dentro de un while. cuando esta fuera del while funciona bien, pero dentro de el, dice que los valores id están duplicados. intente colocar un autoincrement con un $i++, esto me quita el problema de los id duplicados, pero sigue sin mostrar el resultado en el input final, este es mi código. alguien que me pueda ayudar o que me sugiera que código debo usar que realice esta función para cada uno de los datos arrojados dentro del while.

1
2
3
$i=1;
          while ( $result = mysqli_fetch_assoc($query)) { ?>
          <tr>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function sumando() {
var n1 = document.getElementById("coevaluacion").value;
var n2 = document.getElementById("eteroevaluacion").value;
var n3 = document.getElementById("n3").value;
var n4 = document.getElementById("porcentaje1").value;
var n5 = document.getElementById("porcentaje2").value;
var n6 = document.getElementById("porcentaje3").value;
 
 try{
    p1 = (isNaN(parseInt(n1)))? 0 : parseInt(n1);
        p4 = (isNaN(parseInt(n4)))? 0 : parseInt(n4);
    p2 = (isNaN(parseInt(n2)))? 0 : parseInt(n2);
 
    p5 = (isNaN(parseInt(n5)))? 0 : parseInt(n5);
    p3 = (isNaN(parseInt(n3)))? 0 : parseInt(n3);
    p6 = (isNaN(parseInt(n6)))? 0 : parseInt(n6);
 
 
        var n11= p3+p4 ;
        var n10 = p2+p5;
        var n12= p1+p6 ;
 
    document.form1.final.value = n10+n11+n12 ;
  }
   //Si se produce un error no hacemos nada
   catch(e) {}
}
 
</script>

este es el código del formulario que uso dentro del while, dentro del campo id agregue el valor que incrementa en uno

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<input placeholder="%" name="porcentaje2" type="int" id="porcentaje2<?php echo $i; ?>"  onkeyup="sumando(this.value)"  class="form-control"  value="">
        </div>
          <div class="col-3">
 
              <label for="n3"> n3 </label>
              <input placeholder="nota" name="n3" type="int"  id="n3<?php echo $i; ?>" onkeyup="sumando(this.value)" value="" class="form-control" >
 
 
      </div>
     <div class="col-3">
 
              <label  for="porcentaje3">%</label>
              <input placeholder="%" name="porcentaje3" type="int" id="porcentaje3<?php echo $i; ?>" onkeyup="sumando(this.value)" value="" class="form-control" >
 
      </div>
 
        <div class="col-4" >
 
              <p align="center">
                <label for="final" > Final </label>
                <input placeholder="final"  name="final"  id="final<?php echo $i; ?>"  class="form-control" >
        </p>
              <p>&nbsp;</p>
    </div>
                  </div>
 
                <div class="form-row">
 
                        <div class="col-6">
                      <br />
                       <input type="submit"  name="enviar" value="Guardar Notas"  class="btn btn-danger small"/>
        </div>
 
                </form></div>
 
 
         </div></div></td>
 
 
		</div>
 
 
      </tr>
     <?php $i++;}  ?>
 
  </tbody>
</table> <?php }  ?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Suma de Inputs con resultado automático dentro de un while

Publicado por joel (1269 intervenciones) el 27/02/2021 12:26:15
No se entiende muy bien tu código... tienes codigo php luego js y luego html con php¿?
A la función sumando() envías un valor, que no recoges en la función... pero aparte de eso, no se ver donde están los id's repetidos... has visto el código fuente haber cual es el id repetido?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 32
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Suma de Inputs con resultado automático dentro de un while

Publicado por guillermo (14 intervenciones) el 27/02/2021 17:19:14
buen dia, el codigo php es el while para la consulta, detro del while, cree un formulario, En javascript esta hecha la función para sumar.
los ids ya no se repiten porque agregue id="final<?php echo $i; ?>" .

teniendo en cuenta que cuando el formulario se ejecuta dentro del while repetía los id.


la función recoge los valores fuera del while , y todo funciona bien. ya dentro de este no funciona y en este caso no se como se recogerían los valores dentro de la función sumando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 32
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Suma de Inputs con resultado automático dentro de un while

Publicado por guillermo (14 intervenciones) el 01/03/2021 21:06:17
Agradezco mucho a todos los que me colaboraron, por aquí dejo el código que me sirvió para darle solución a este tema.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$i=1;
			  while ( $result = mysqli_fetch_assoc($query)) { ?>
			  <tr>
	<script>
function sumando(id) {
var n1 = document.getElementById("coevaluacion"+id).value;
var n2 = document.getElementById("eteroevaluacion"+id).value;
var n3 = document.getElementById("n3"+id).value;
var n4 = document.getElementById("porcentaje1"+id).value;
var n5 = document.getElementById("porcentaje2"+id).value;
var n6 = document.getElementById("porcentaje3"+id).value;
 
 try{
	p1 = (isNaN(parseInt(n1)))? 0 : parseInt(n1);
		p4 = (isNaN(parseInt(n4)))? 0 : parseInt(n4);
	p2 = (isNaN(parseInt(n2)))? 0 : parseInt(n2);
 
	p5 = (isNaN(parseInt(n5)))? 0 : parseInt(n5);
	p3 = (isNaN(parseInt(n3)))? 0 : parseInt(n3);
	p6 = (isNaN(parseInt(n6)))? 0 : parseInt(n6);
 
 
		var n11= p3*p4/100 ;
		var n10 = p2*p5/100;
		var n12= p1*p6/100 ;
 
 
document.getElementById("final"+id).value=n10+n11+n12 ;
  }
   //Si se produce un error no hacemos nada
   catch(e) {}
}
 
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar