jueves, 9 de octubre de 2014

PHP (05) Manejo de navegadores (02) Descargando multiples variables

Es un hecho que la mayor parte de los formularios no tendrán tan solo un campo, se compondrán de varios, y hay que recoger los datos de todos ellos, para ello vamos a crear un pequeño script que sirve para todos los formularios que hagamos recorriendo el formulario como un array.
Este es nuestro formulario de ejemplo:
<!DOCTYPE html>
<html lang="es">
<head>
 <meta charset="UTF-8">
 <title>Recogida</title>
</head>
<body>
 <form method="post" action="miphp.php">
  <p>Su pizza tiene como ingredientes tomate, mozzarella y...</p>
  <select name="pizza">
      <option>atun</option>
      <option>carne</option>
      <option>bacon</option>
      <option>aceitunas</option>
  </select>
  <p>Para acceder tiene que ser mayor de edad:</p>
  <input name="edad" type="radio" value="menor">menor de edad
  <input name="edad" type="radio" value="mayor">mayor de edad
  <input name="nombre" type="text">
  <input type="submit" value="enviar">
  <input type="reset" value="borrar">
 </form>
</body>
</html>

En él se encuentran varios de los ejemplos que hemos visto en las entradas de PHP (04) Lectura de datos desde WEB, pero para recogerlos cada uno tiene su propio valor y nombre, por lo que los recorreremos con un bucle foreach:
<html>
<head>
</head>
<body>
 <?php
 foreach($_REQUEST as $key => $value){
  if(is_array($value)){
   foreach($value as $item){
   echo $key, " => ", $item, "<br>";
   }
  } else {
   echo $key, " => ", $value, "<br>" ;
  }
 }
 ?>
</body>
</html>

De esta forma recorremos nuestro formulario con el par clave/valor, y determimando si el valor es una array, recorre de nuevo este valor con otro foreach que recoge los valores.
En el caso de que nuestro valor no sea una matriz, se recogen los datos en el else.

El resultado final de nuestro srcript sería:
pizza => atun
edad => mayor
nombre => eeee

Con este script genérico se pueden recoger todos los valores de los formularios, y puede ser de gran ayuda.
Aunque indudablemente hay muchas otras formas de hacerlo.

No hay comentarios:

Publicar un comentario