Foros del Web » Programando para Internet » PHP »

Como llenar un array con formulario

Estas en el tema de Como llenar un array con formulario en el foro de PHP en Foros del Web. Buen dia foro. Estoy realizando una hoja de cotizaciones y he visto en internet que es mejor utilizar arreglos y sesiones para almacenar los productos ...
  #1 (permalink)  
Antiguo 28/11/2012, 08:55
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Pregunta Como llenar un array con formulario

Buen dia foro.

Estoy realizando una hoja de cotizaciones y he visto en internet que es mejor utilizar arreglos y sesiones para almacenar los productos que se van agregando mi pregunta es: como se llena el array desde un formulario y como se mete a una session he visto tutoriales pero realmente sigo sin entenderlos

espero me puedan ayudar de antemano muchas gracias...
__________________
Lo imposible solo cuesta un poco mas
  #2 (permalink)  
Antiguo 28/11/2012, 09:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como llenar un array con formulario

Es sumamente sencillo, consulta el manual:
http://www.php.net/variables.external
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/11/2012, 09:35
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Pregunta Respuesta: Como llenar un array con formulario

Ok ya he conseguido porder asignar valores a una array desde un formulario ahora me salta la siguiente duda:

Como puedo hacer para que se vaya creando un arreglo cada que se presiona el boton añadir alguien me puede ayudar?

lo que tengo de codigo es el siguiente.

Código PHP:
Ver original
  1. <?php
  2. ?>
  3.  
  4. <form action="" method="post">
  5. <input type="text" name="codigo" />
  6. <input type="text" name="producto" />
  7. <input type="text" name="cantidad" />
  8. <input type="text" name="descripcion" />
  9. <input type="text" name="precioU" />
  10. <input type="submit" name="procesar" />
  11. </form>
  12.  
  13. <?php
  14. if(isset($_POST["procesar"]))
  15. {
  16.     if(!isset($_SESSION["pedido"]))
  17.     {
  18.         $pedido[$_POST["codigo"]] = array ("codigo"=>$_POST["codigo"],"producto"=>$_POST["producto"],"cantidad"=>$_POST["cantidad"],"descripcion"=>$_POST["descripcion"],"precioU"=>$_POST["precioU"]);
  19.         $_SESSION["pedido"] = $pedido;
  20.     }
  21.    
  22.     $total = 0;
  23.     $subtotal = 0;
  24.    
  25.     foreach($_SESSION["pedido"] as $servicio)
  26.     {
  27.         $subtotal = $servicio["precioU"] * $servicio["cantidad"];
  28.         echo "Codigo: ". $servicio["codigo"]. "<br />";
  29.         echo "Producto: ". $servicio["producto"]. "<br />";
  30.         echo "Cantidad: ". $servicio["cantidad"]. "<br />";
  31.         echo "Descripcion: ". $servicio["descripcion"]. "<br />";
  32.         echo "Precio: ". $servicio["precioU"]. "<br />";
  33.         echo "Subtotal: ". $subtotal;
  34.     }
  35.     echo var_dump($_SESSION["pedido"]);
  36.    
  37. }
  38. ?>
__________________
Lo imposible solo cuesta un poco mas
  #4 (permalink)  
Antiguo 28/11/2012, 09:54
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Como llenar un array con formulario

Esto es mas o menos lo que quisiera hacer pero no tengo la menor idea de como hacer par aque no me sobre escriba lo que ya tiene el arreglo este es el ejemplo:

Código PHP:
Ver original
  1. $productos = array(
  2.  
  3.            'Leche' => array('Envasado' => 10/2011,
  4.                            'Caduca' => 12/2012,
  5.                            'Operario' => 'Manuel'),
  6.  
  7.            'Queso' => array('Envasado' => 05/2010,
  8.                            'Caduca' => 11/2012,
  9.                            'Operario' => 'Jaime'),
  10.  
  11.            'Arroz' => array('Envasado' => 09/2010,
  12.                            'Caduca' => 02/2011,
  13.                            'Operario' => 'Manuel'),
  14.  
  15.            'Carne' => array('Envasado' => 01/2012,
  16.                            'Caduca' => 05/2012,
  17.                            'Operario' => 'Armando')
  18.            );

y para mostrar datos o hacer calculos sacarlos por pantalla
supongo que asi

echo $productos['Leche']
['Operario'];
__________________
Lo imposible solo cuesta un poco mas
  #5 (permalink)  
Antiguo 28/11/2012, 10:23
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Como llenar un array con formulario

Alguien sabe como puedo hacer eso el codigo que yo tengo me sobreescribe el array y lo que necesito es hacer que se genere otro array que el siguiente codigo que se envia
__________________
Lo imposible solo cuesta un poco mas
  #6 (permalink)  
Antiguo 28/11/2012, 10:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como llenar un array con formulario

Debes aprender a manejar arrays, el único error que cometes es precisamente ese, sobre escribes todo en lugar de agregar un índice nuevo.

Consulta el manual, no muerde.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 28/11/2012, 10:59
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Pregunta Respuesta: Como llenar un array con formulario

gracias pateketrueke

pero lo que necesito es un ejemplo no por comodidad si no para darme una idea, no se manejar arreglos por esa razon solicito ayuda para aprender a utilizarlos
__________________
Lo imposible solo cuesta un poco mas
  #8 (permalink)  
Antiguo 28/11/2012, 11:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como llenar un array con formulario

Por comodidad es mucho mejor consultar el manual, ahí existen bastantes ejemplos de uso, no entiendo la disyuntiva.

Sin embargo es algo así:
Código PHP:
$foo = array('x' => 'y');
$_SESSION['bar'] = $foo
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 28/11/2012, 11:20
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Como llenar un array con formulario

eso es lo que tengo en el codigo de arriba pero me sobreescribe los datos del array

por ejemplo si al precionar una vz el boton aparece esto:

Código PHP:
Ver original
  1. $productos = array(
  2.  
  3.            '001' => array(
  4.                            'producto' => Folletos,
  5.                            'cantidad' => 1000,
  6.                            'precio' => '1.20'));

al precionar de nuevo deberia de aparecer asi:

Código PHP:
Ver original
  1. $productos = array(
  2.  
  3.            '001' => array(
  4.                            'producto' => Folletos,
  5.                            'cantidad' => 1000,
  6.                            'precio' => '120'),
  7.            '002' => array(
  8.                            'producto' => Tarjetas,
  9.                            'cantidad' => 500,
  10.                            'precio' => '1.50'),
  11. );

espero haberme explicado
__________________
Lo imposible solo cuesta un poco mas
  #10 (permalink)  
Antiguo 28/11/2012, 11:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como llenar un array con formulario

Por favor lee el ejemplo que puse, y mira como haces las cosas.
Código PHP:
// MAL
        
$pedido[$_POST["codigo"]] = array ("codigo"=>$_POST["codigo"],"producto"=>$_POST["producto"],"cantidad"=>$_POST["cantidad"],"descripcion"=>$_POST["descripcion"],"precioU"=>$_POST["precioU"]);
        
$_SESSION["pedido"] = $pedido;

// BIEN
        
$pedido = array ("codigo"=>$_POST["codigo"],"producto"=>$_POST["producto"],"cantidad"=>$_POST["cantidad"],"descripcion"=>$_POST["descripcion"],"precioU"=>$_POST["precioU"]);
        
$_SESSION["pedido"][$_POST["codigo"]] = $pedido
¿Se entiende?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 28/11/2012, 11:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Como llenar un array con formulario

Código PHP:
Ver original
  1. $array = array();
  2. // agregar un elemento nuevo
  3. $array[] = $foo;
  4. // agregar otro elemento
  5. $array[] = $bar;
  6.  
  7. // agregar usando un índice:
  8. $array['algo'] = $baz;
  #12 (permalink)  
Antiguo 28/11/2012, 12:24
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Como llenar un array con formulario

Ya lo solucione

con sesiones lo hice de esta forma no se si sea la mejor forma pero me funciono

Código PHP:
Ver original
  1. <?php
  2. ?>

Código HTML:
Ver original
  1. <form action="" method="post">
  2. <input type="text" name="codigo" />
  3. <input type="text" name="producto" />
  4. <input type="text" name="cantidad" />
  5. <input type="text" name="descripcion" />
  6. <input type="text" name="precioU" />
  7. <input type="submit" name="procesar" />
  8. </form>

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST["procesar"]))
  3. {
  4.     if(!isset($_SESSION["pedido"]))
  5.     {
  6.         $pedido = $_SESSION["pedido"];
  7.         $pedido[$_POST["codigo"]] = array (
  8.         "codigo"=>$_POST["codigo"],
  9.         "producto"=>$_POST["producto"],
  10.         "cantidad"=>$_POST["cantidad"],
  11.         "descripcion"=>$_POST["descripcion"],
  12.         "precioU"=>$_POST["precioU"]
  13.         );
  14.        
  15.         $_SESSION["pedido"] = $pedido;
  16.     }
  17.     else
  18.     {
  19.         @$pedido = $_SESSION["pedido"];
  20.         $pedido[$_POST["codigo"]] = array (
  21.         "codigo"=>$_POST["codigo"],
  22.         "producto"=>$_POST["producto"],
  23.         "cantidad"=>$_POST["cantidad"],
  24.         "descripcion"=>$_POST["descripcion"],
  25.         "precioU"=>$_POST["precioU"]
  26.         );
  27.        
  28.         $_SESSION["pedido"] = $pedido;
  29.     }
  30.     $total = 0;
  31.     $subtotal = 0;
  32.     ?>
  33.  
  34.     <table border="1" width="700">
  35.         <tr>
  36.             <th>Codigo</th>
  37.             <th>Producto o servicio</th>
  38.             <th>Cantidad</th>
  39.             <th>Descripcion</th>
  40.             <th>$ Precio U.</th>
  41.             <th>$ Importe</th>
  42.         </tr>
  43.     <?php
  44.     foreach($_SESSION["pedido"] as $servicio)
  45.     { $subtotal = $servicio["precioU"] * $servicio["cantidad"]; ?>
  46.  
  47.         <tr>
  48.             <td><?php echo $servicio["codigo"]; ?></td>
  49.             <td><?php echo $servicio["producto"]; ?></td>
  50.             <td><?php echo $servicio["cantidad"]; ?></td>
  51.             <td><?php echo $servicio["descripcion"]; ?></td>
  52.             <td><?php echo $servicio["precioU"]; ?></td>
  53.             <td><?php echo $subtotal; ?></td>
  54.         </tr>
  55.     <?php
  56.     }
  57.     echo "</table>";
  58.     echo  var_dump($_SESSION["pedido"]);
  59.  
  60. }
  61. ?>

y con eso ya me imprime la tabla con los datos de cada arreglo de cada indice y en el var_dump me imprime lo que yo decia

Código PHP:
Ver original
  1.   '001' =>
  2.     array
  3.       'codigo' => string '001' (length=3)
  4.       'producto' => string 'tarjetas' (length=8)
  5.       'cantidad' => string '500' (length=3)
  6.       'descripcion' => string 'tarjetas' (length=8)
  7.       'precioU' => string '1.20' (length=4)
  8.   '002' =>
  9.     array
  10.       'codigo' => string '002' (length=3)
  11.       'producto' => string 'folletos' (length=8)
  12.       'cantidad' => string '1000' (length=4)
  13.       'descripcion' => string 'folletos' (length=8)
  14.       'precioU' => string '50.00' (length=5)
  15.   '003' =>
  16.     array
  17.       'codigo' => string '003' (length=3)
  18.       'producto' => string 'banderas' (length=8)
  19.       'cantidad' => string '500' (length=3)
  20.       'descripcion' => string 'banderas' (length=8)
  21.       'precioU' => string '100' (length=3)
  22.   '004' =>
  23.     array
  24.       'codigo' => string '004' (length=3)
  25.       'producto' => string 'planos' (length=6)
  26.       'cantidad' => string '100' (length=3)
  27.       'descripcion' => string 'planos' (length=6)
  28.       'precioU' => string '50' (length=2)

gracias por el apoyo de todas formas y pateketrueke no te molestes soy novato en esta onda de arreglos y si lei el manual pero no comprendi por eso segui pidiendo apoyo
__________________
Lo imposible solo cuesta un poco mas
  #13 (permalink)  
Antiguo 28/11/2012, 12:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Como llenar un array con formulario

No le veo caso a tu if/else ya que es el mismo código excepto por una @, mejor haz algo así:
Código PHP:
Ver original
  1. $pedido = array();
  2. if (isset($_SESSION['pedido'])) {
  3.          $pedido = $_SESSION['pedido'];
  4. }
  5.  
  6. // agregas y al final guardas de nuevo en sesión.
  #14 (permalink)  
Antiguo 28/11/2012, 12:59
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Como llenar un array con formulario

Men me marca error y no me muestra nada haciendolo de la forma que tu me comentas
__________________
Lo imposible solo cuesta un poco mas
  #15 (permalink)  
Antiguo 28/11/2012, 13:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Como llenar un array con formulario

¿como lo implementaste?
  #16 (permalink)  
Antiguo 28/11/2012, 13:30
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Como llenar un array con formulario

De esta manera pero me marca errores de que no esta definido el index pedido justo en donde quiero mostrar los datos, supongo porque no hay donde se cree la session y el codigo esta asi

Código PHP:
Ver original
  1. if(isset($_SESSION["pedido"]))
  2.     {
  3.         $pedido = $_SESSION["pedido"];
  4.         $pedido = array (
  5.         "codigo"=>$_POST["codigo"],
  6.         "producto"=>$_POST["producto"],
  7.         "cantidad"=>$_POST["cantidad"],
  8.         "descripcion"=>$_POST["descripcion"],
  9.         "precioU"=>$_POST["precioU"]
  10.         );
  11.         $_SESSION["pedido"][$_POST["codigo"]] = $pedido;
  12.     }
__________________
Lo imposible solo cuesta un poco mas
  #17 (permalink)  
Antiguo 28/11/2012, 13:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Como llenar un array con formulario

Pues es simple lógica, tal como te lo puse primero verificas si existe, en caso afirmativo sacas los datos de la sesión y luego los agregas.
  #18 (permalink)  
Antiguo 28/11/2012, 14:02
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Como llenar un array con formulario

Me podrias dar un ejemplo asi como en el codiogo que puse de vdd soy bastante novato en arreglos y me las estoy viendo duras para poder realizar el codigo

ok ya le puse que si no existe que lo agregue y en caso de que exista como quedaria el codigo? me podrias ayudar
__________________
Lo imposible solo cuesta un poco mas
  #19 (permalink)  
Antiguo 28/11/2012, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Como llenar un array con formulario

Tal como te puse el ejemplo de arriba, así es como lo debes de hacer, es la lógica:
Código:
// inicializas tus variables
si existe pedido en sesion
 - rescatas pedidos de la sesión

insertas nuevo pedido
guardas tus pedidos en la sesión
  #20 (permalink)  
Antiguo 28/11/2012, 14:33
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Pregunta Respuesta: Como llenar un array con formulario

Entonces si queda con el mismo codigo o de que forma:

Código PHP:
Ver original
  1. $pedido = array();
  2.     if(isset($_SESSION["pedido"]))
  3.     {
  4.         $pedido = $_SESSION["pedido"];
  5.         $_SESSION["pedido"] = $pedido;
  6.     }
  7.     else
  8.     {
  9.         @$pedido = $_SESSION["pedido"];
  10.         $pedido[$_POST["codigo"]] = array (
  11.         "codigo"=>$_POST["codigo"],
  12.         "producto"=>$_POST["producto"],
  13.         "cantidad"=>$_POST["cantidad"],
  14.         "descripcion"=>$_POST["descripcion"],
  15.         "precioU"=>$_POST["precioU"]
  16.         );
  17.        
  18.         $_SESSION["pedido"] = $pedido;
  19.     }

Entiendo lo que me tratas de decir y por logica oviamente se como dices pero al pasarlo a codigo me hago bolas me revuelvo con lo de las variables.

en caso de que la session no exista se crea y se ingresan los datos al arreglo y en caso de que exista se hace lo mismo solo que sin crear la sesion o como
__________________
Lo imposible solo cuesta un poco mas
  #21 (permalink)  
Antiguo 28/11/2012, 15:01
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Como llenar un array con formulario

ok Muchas gracias por la pasciencia ya logre hacer que aloje los arrays sin errores gracias a todos de vdd
__________________
Lo imposible solo cuesta un poco mas

Etiquetas: formulario
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 02:23.