miércoles, 1 de octubre de 2014

PHP (04) Lectura de datos desde WEB (05) Radiobuttons

Los radiobuttons sirven para cuando queremos que el usuario solo pueda marcar una opción a diferencia de los checkboxs, donde se pueden marcar varios. Siendo de este tipo:
menor de edad
mayor de edad
En el ejemplo vemos que solo nos deja marcar uno de los radiobuttons, lo cual nos puede ayudar mucho en las ocasiones en las que solo queremos que se marque una opción.

Como siempre, lo primero que haremos será crear nuestro archivo html para introducir nuestro formulario:
<html>
<head>
</head>
<body>
 <form method="post" action="miphp.php">
  <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 type="submit" value="enviar">
  <input type="reset" value="borrar">
 </form>
</body>
</html>

Hay que tener en cuenta que en este caso el name de las dos opciones es el mismo, de lo contrario el navegador lo reconoce como otra categoría dentro del formulario y permitiría marcarla como otra opción.

Una  vez que ya tenemos nuestro archivo html, vamos a proceder a recibir la información en miphp.php, para ello vamos a utilizar un ifelse, por si el usuario no ha pulsado ninguna de las opciones:
<html>
<head>
</head>
<body>
 <?php
  echo '<h2>Respuesta de PHP</h2>';
  echo '<h3>Usted ha elegido:</h3>';
  if (isset($_REQUEST['edad'])){
   echo 'usted es ' . $_REQUEST['edad'] . ' de edad';
  }else{
   echo 'Usted debe de marcar una opcion';
  }
  
 ?>
</body>
</html>

Como vemos con $_REQUEST['edad'] recogemos el valor del formulario, mostrando la opción elegida, incluso si el usuario envía el formulario sin marcar nada, lo contemplamos en el else.

Pero aunque la base es esta, aun podemos darle un pequeño giro más, haciendo que nuestro script reaccione a nuestra opción:
<html>
<head>
</head>
<body>
 <?php
  echo '<h2>Respuesta de PHP</h2>';
  echo '<h3>Usted ha elegido:</h3>';
  if (isset($_REQUEST['edad'])){
   $edad = $_REQUEST['edad'];
   if ($edad=='menor'){
    echo 'Lo sentimos pero no puede acceder, usted es menor de edad';
   } else {
    echo 'Disfrute de su estancia';
   }
  } else {
   echo 'Usted debe de marcar una opcion';
  }
  
 ?>
</body>
</html>

En este caso PHP detecta que se ha marcado el radiobutton, recoge la variable y entra de nuevo en otra estructura de control de flujo ifelse, donde la compara a una de las opciones y si es igual ejecuta un código denegando el acceso o de lo contrario permite el acceso a la aplicación.

No hay comentarios:

Publicar un comentario