Foros del Web » Programando para Internet » PHP »

Sumar valores de varias cajas de texto

Estas en el tema de Sumar valores de varias cajas de texto en el foro de PHP en Foros del Web. Hola, tengo un código en PHP que me genera varias cajas de texto cada una con el atributo name='cantidad_$i', es decir: caja 1 name='cantidad_1' caja ...
  #1 (permalink)  
Antiguo 22/08/2011, 17:52
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 13 años, 4 meses
Puntos: 0
Sumar valores de varias cajas de texto

Hola, tengo un código en PHP que me genera varias cajas de texto cada una con el atributo name='cantidad_$i', es decir:

caja 1 name='cantidad_1'
caja 2 name='cantidad_2'
caja 3 name='cantidad_3'

Así sucesivamente segun la cantidad que especifico en mi ciclo. El asunto es que deseo sumar los valores numéricos que me entran los usuarios en cada una de las cajas, para guardarlo en una base de datos.

Me pudieran ayudar.
  #2 (permalink)  
Antiguo 22/08/2011, 17:57
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: Sumar valores de varias cajas de texto

Es más sencillo que crees un array de cantidad

name='cantidad[]'

y luego donde vayas a recoger ese array lo sumas

Código PHP:
Ver original
  1. <?php
  2. $total = array_sum($tu_array);
  3. ?>

e insertas el $total en tu base de datos como quieras.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 23/08/2011, 08:28
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Sumar valores de varias cajas de texto

Esta opción ya la había visto pero no me resuleve el problema, pues en mi formulario se generan varias cajas de texto segun una cantidad de registros que me devuelve una consulta a mi base de datos y a estas cajas las nombro cantidad_$id, luego al enviar el formulario tengo una variable $$cantidad que me recoje los valores introducidos, por ejemplo,

en la caja uno valor 2
en la caja tres valor 5

y asi sucesivamente segun vaya llenando. Cuando visualizo la variable $$cantidad en pantalla, me devuelve 25, es decir, los valores que había introducido, y son esos valores los que yo quiero que se sumen, es decir, $total=2+5.
  #4 (permalink)  
Antiguo 23/08/2011, 08:35
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: Sumar valores de varias cajas de texto

Si tu problema es que la cantidad de cajas de texto es variable, la solución de @andreszphp es totalmente válida. Lo que haces es, en vez de enviar cada caja con un name diferente, envías todas dentro de un array. Luego sólo tienes que sumar los datos de dicho array.

Supongo que habrá más formas de hacerlo, pero esa funciona 100%. Si no te funciona, es que haces algo mal. Intenta implementarla y si te da error, péganos el código y te echamos una mano.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #5 (permalink)  
Antiguo 23/08/2011, 09:49
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: Sumar valores de varias cajas de texto

Bueno te dejaré un par de ejemplos:

Ejemplo # 1, con la primera forma que te dejé:

formulario.php

Código PHP:
Ver original
  1. <form action="sumar.php" method="post">
  2. <?php
  3.  
  4. for ($i=1; $i<=10; $i++) {
  5.     echo 'Valor '.$i.': <input type="text" name="cantidad[]" /><br />';
  6. }
  7. ?>
  8. <br /><input type="submit" value="Sumar cantidades" />
  9. </form>

sumar.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. $total = 0;
  4.  
  5. if (isset($_POST['cantidad']) && !empty($_POST['cantidad'])) {
  6.     if (is_array($_POST['cantidad'])) {
  7.         $total = array_sum($_POST['cantidad']);
  8.     }
  9. }
  10.  
  11. echo $total;

Ejemplo # 2, una parecida a lo que estas haciendo:

formulario.php

Código PHP:
Ver original
  1. <form action="sumar.php" method="post">
  2. <?php
  3. $x=1;
  4. while ($x<=10) {
  5. echo 'Valor '.$x.': <input type="text" name="cantidad_'.$x.'" /><br />';
  6. $x++;
  7. }
  8. ?><br />
  9. <input type="hidden" name="campos" value="<?php echo $x; ?>" />
  10. <input type="submit" value="Sumar cantidades" />
  11. </form>

sumar.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. $suma = 0;
  4.  
  5. if (isset($_POST['campos']) && !empty($_POST['campos'])) {
  6.     for ($i=1; $i<$_POST['campos']; $i++) {
  7.         if (isset($_POST['cantidad_'.$i]) && !empty($_POST['cantidad_'.$i])) {
  8.             $suma += $_POST['cantidad_'.$i];
  9.         }
  10.     }
  11. }
  12.  
  13. echo $suma;

Yo me quedaría con la primera. Con eso es suficiente para que hagas lo que necesitas.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 23/08/2011, 13:18
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Sumar valores de varias cajas de texto

Gracias colegas por sus ayudas, es verdad con la solución que me habías dado resolvia mi problema, y decidi quedarme con tu primer código andresdzphp.

Salu2.

Etiquetas: cajas, usuarios
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




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