Formularios HTML y PHP: botones, campos de entrada y recuperación de datos
Resumen
El documento explica cómo crear formularios en HTML, distinguiendo los botones de envío, borrado y genéricos, así como las formas de agrupar campos. Después muestra cómo enviar los datos a un fichero PHP y recuperarlos con $_REQUEST. Por último, repasa los distintos tipos de elementos input, select y textarea con ejemplos de código.
Puntos clave
- El botón de envío (submit) manda los datos a la dirección indicada en ACTION; si no tiene value, muestra "Enviar consulta".
- El botón de borrado (reset) reinicia el formulario a sus valores por defecto; si no tiene value, muestra "Restablecer".
- agrupa campos dentro de un borde y le da título.
- Con METHOD="POST" o "GET" los datos viajan al servidor, y en PHP se recuperan con $_REQUEST['nombre_campo'].
- Los campos checkbox con NAME="extras[]" envían varios valores que PHP recibe como un array.
- Para subir ficheros se usa type="file" junto con enctype="multipart/form-data" en el formulario.
Botones de formulario
Botón de envío:
Envía los datos a la dirección indicada. value="texto botón": valor del botón. Si no se especifica, muestra Enviar consulta.
: imagen.
Botón de borrado:
- : reinicia el formulario con los valores por defecto si existen; si no, los deja vacíos.
value="texto botón". Si no se especifica, muestra Restablecer.
Organización de formularios
Se pueden agrupar campos para organizar y mejorar el aspecto estético.
<fieldset>...</fieldset>: agrupa campos en torno a un borde.<legend>Texto</legend>: título del grupo.<optgroup>: etiqueta un grupo de opciones.
Otros elementos
Otros:
- : botón genérico.
value="texto botón": valor del botón. - : aspecto de imagen.
src="URL": ruta al fichero de la imagen.width="px"yheight="px": ancho y alto de la imagen. - : adjuntar un fichero para enviarlo al destino.
enctype="multipart/form-data".accept="formato": varios formatos se separan por "|" (audio|video|image|mime_type). - : enviar datos de forma invisible.
- : lista de valores.
id="identificador": asocia los valores al input donde deben aparecer; el inputlisty eldatalistdeben coincidir. - : descripción.
for="idref": asocia la etiqueta con un control; el valor debe coincidir con el atributoid.
Acceso a formularios desde PHP
Fichero uno.php:
<HTML><BODY><FORM ACTION="dos.php" METHOD="POST">Edad: <INPUT TYPE="text" NAME="edad"><INPUT TYPE="submit" VALUE="aceptar"></FORM></BODY></HTML>Fichero dos.php:
<HTML><BODY><?PHP print("La edad es: $edad"); ?></BODY></HTML>Recuperar datos
Al pulsar el botón de enviar, los datos se envían por la URL.
$_REQUEST: permite capturar variables enviadas desde formularios con los métodos GET o POST.
Ejemplo: $edad = $_REQUEST['edad'];
Fichero uno.php:
<HTML><BODY><FORM ACTION="dos.php" METHOD="POST">Edad: <INPUT TYPE="text" NAME="edad"><INPUT TYPE="submit" VALUE="aceptar"></FORM></BODY></HTML>Fichero dos.php:
<HTML><BODY><?PHP $edad = $_REQUEST['edad']; print("La edad es: $edad"); ?></BODY></HTML>Elementos tipo input
Texto:
Introduce un texto:
<INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto"><?PHP $cadena = $_REQUEST['cadena']; print($cadena); ?>Elegir una opción (círculo / radio):
Sexo:
<INPUT TYPE="radio" NAME="sexo" VALUE="M" CHECKED>Mujer <INPUT TYPE="radio" NAME="sexo" VALUE="H">Hombre<?PHP $sexo = $_REQUEST['sexo']; print($sexo); ?>Elegir varias opciones (cuadrado / checkbox):
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje" CHECKED>Garaje <INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina <INPUT TYPE="checkbox" NAME="extras[]" VALUE="jardin">Jardín <?PHP $extras = $_REQUEST['extras']; foreach ($extras as $extra) print("$extra<BR>\n"); ?>Botón (Button):
<INPUT TYPE="button" NAME="actualizar" VALUE="Actualizar datos"><?PHP $actualizar = $_REQUEST['actualizar']; if ($actualizar) print("Se han actualizado los datos"); ?>Botón de examinar archivo:
<FORM ACTION="procesa.php" METHOD="post" ENCTYPE="multipart/form-data"><INPUT TYPE="file" NAME="fichero"></FORM>Formulario invisible:
<?PHP print("<INPUT TYPE='hidden' NAME='username' VALUE='$usuario'>\n"); ?><?PHP $username = $_REQUEST['username']; print($username); ?>Formulario contraseña:
Contraseña:
<INPUT TYPE="password" NAME="clave"><?PHP $clave = $_REQUEST['clave']; print($clave); ?>Botón submit:
<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos"><?PHP $enviar = $_REQUEST['enviar']; if ($enviar) print("Se ha pulsado el botón de enviar"); ?>Select simple (se muestra uno con flecha desplegable):
Color:
<SELECT NAME="color"><OPTION VALUE="rojo" SELECTED>Rojo<OPTION VALUE="verde">Verde<OPTION VALUE="azul">Azul</SELECT><?PHP $color = $_REQUEST['color']; print($color); ?>Select múltiple (se muestran todas las opciones):
Idiomas:
<SELECT MULTIPLE SIZE="3" NAME="idiomas[]"><OPTION VALUE="ingles" SELECTED>Inglés<OPTION VALUE="frances">Francés<OPTION VALUE="aleman">Alemán<OPTION VALUE="holandes">Holandés</SELECT><?PHP $idiomas = $_REQUEST['idiomas']; foreach ($idiomas as $idioma) print("$idioma<BR>\n"); ?>Formulario para comentario:
Comentario:
<textarea COLS="50" ROWS="4" NAME="comentario">Este libro me parece ...</textarea><?PHP $comentario = $_REQUEST['comentario']; print($comentario); ?>Descargar
PDF Word HTMLPreguntas frecuentes
¿Cómo recupera PHP los datos de un formulario?
Se usa la variable $_REQUEST con el nombre del campo entre corchetes, por ejemplo $edad = $_REQUEST['edad']; . Permite capturar datos enviados tanto por GET como por POST.
¿Qué diferencia hay entre el botón submit y el botón reset?
El botón submit envía los datos del formulario al destino indicado, mientras que el botón reset reinicia los campos con sus valores por defecto o los deja vacíos.
¿Para qué sirve enctype="multipart/form-data"?
Sirve para adjuntar ficheros al formulario y enviarlos al destino. Debe incluirse junto al campo de tipo file.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.