Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Llenar array con datos de un formulario

Estas en el tema de Llenar array con datos de un formulario en el foro de PHP en Foros del Web. Hola... Tengo el siguiente formulario @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < form action = "clase5.php" method = "post" name = "datos" >     ...
  #1 (permalink)  
Antiguo 14/06/2016, 10:44
Avatar de LordJhony  
Fecha de Ingreso: septiembre-2010
Mensajes: 472
Antigüedad: 13 años, 7 meses
Puntos: 24
Llenar array con datos de un formulario

Hola...
Tengo el siguiente formulario

Código HTML:
Ver original
  1. <form action="clase5.php" method="post" name="datos">
  2.      <label style="font-size: medium; color: black;"><b>Nombre:</b>  </label>&nbsp;&nbsp;
  3.      <input type="text" name="nombre" id="nombre"/><br /><br />
  4.      <label style="font-size: medium; color: black;"><b>Apellido:</b></label>&nbsp;&nbsp;
  5.      <input type="text" name="apellido" id="apellido"/><br /><br />
  6.      <label style="font-size: medium; color: black;"><b>Edad:</b></label>&nbsp;&nbsp;
  7.      <input type="text" name="edad" id="edad"/><br /><br />
  8.      <label style="font-size: medium; color: black;"><b>Sexo:</b></label>&nbsp;&nbsp;
  9.      <select name="sexo">
  10.       <option></option>
  11.       <option>Masculino</option>
  12.       <option>Femenino</option>
  13.      </select><br /><br />
  14.      <input type="submit" name="enviar" value="ENVIAR"/>&nbsp;&nbsp;
  15.      <input type="submit" name="mostrar" value="MOSTRAR"/>
  16.    </form>

Lo que intento hacer es que al enviar los datos se me guarden en un array asi

Código PHP:
Ver original
  1. $datos = array();
  2. if (isset($_POST['enviar']))
  3.  {
  4.     if ((isset ($_POST['nombre']) && !empty($_POST['nombre'])) && (isset ($_POST['apellido']) && !empty($_POST['apellido']))
  5.     && (isset ($_POST['edad']) && !empty($_POST['edad'])) && (isset ($_POST['sexo']) && !empty($_POST['sexo'])))
  6.     {
  7.         array_push($datos,array("nombre" => $_POST['nombre'], "apellido" => $_POST['apellido'], "edad" => $_POST['edad'], "sexo" => $_POST['sexo']));
  8. }}

Y cuando presione el boton mostrar me muestre los datos almacenados, eso lo hago asi

Código PHP:
Ver original
  1. else (isset($_POST['mostrar']))
  2.  {
  3.     foreach($datos as $element)
  4.         {
  5.             echo $element["nombre"]."<br />";
  6.         }}

Eso solo me está mostrando el ultimo valor ingresado, en vez de todos los datos previamente guardados y supongo que es porque cada vez que presiono el boton enviar, el array se vuelve a crear. Por tanto lo que quiero saber es si hay una manera de guardar todos los datos en el array y mostrarlos de igual forma.
De antemano muchas gracias
  #2 (permalink)  
Antiguo 14/06/2016, 11:08
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Llenar array con datos de un formulario

Necesitas usar sesiones http://php.net/manual/es/session.examples.basic.php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 14/06/2016, 11:13
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Llenar array con datos de un formulario

Si, como te dice @hhs lo que se me ocurre más fácil es guardar los datos en variables de sesión de esa manera no se pierde al cargar el formulario de nuevo
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #4 (permalink)  
Antiguo 14/06/2016, 11:53
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Llenar array con datos de un formulario

Te he hecho un ejemplo que funciona como lo quieres pero con variables de sesión:

Código PHP:
Ver original
  1. <form action="" method="POST">
  2.   Nombre: <input type="text" name="nombre"><br>
  3.   Apellidos: <input type="text" name="apellidos"><br>
  4.   Edad: <input type="text" name="edad"><br>
  5.   <input type="submit" name="enviar" value="Enviar">
  6.   <input type="submit" name="mostrar" value="mostrar">
  7.  
  8. </form>
  9.  
  10.  
  11. <?php
  12.  
  13. session_start(); // iniciamos session
  14.  
  15. if (isset($_POST["enviar"])) {
  16.   array_pop($_POST); // eliminamos el último elemento del array que pertenece al botón de mostrar
  17.   foreach($_POST as $clave => $valor) {
  18.   $_SESSION[$clave] = $valor;
  19.  
  20.   }
  21.   echo "Los datos han sido enviados <br>";
  22.   echo "Presione Mostrar para verlos";
  23. }
  24.  
  25. if (isset($_POST["mostrar"])) {
  26.   foreach($_SESSION as $key => $value) {
  27.     echo $value . "<br>";
  28.   }
  29.  
  30. }
  31.  
  32.  ?>

Solo te queda validar que los campos estén rellenos y poner tu el formulario que quieras, al darle a enviar guarda los datos, y luego al darle a mostrar, muestra los datos que enviaste ( si vuelves a darle a enviar con otros datos, estos se sustituyen )
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #5 (permalink)  
Antiguo 15/06/2016, 09:13
Avatar de LordJhony  
Fecha de Ingreso: septiembre-2010
Mensajes: 472
Antigüedad: 13 años, 7 meses
Puntos: 24
Respuesta: Llenar array con datos de un formulario

Muchas gracias por su ayuda...

Etiquetas: formulario, select
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:25.