Volver al índice Controles en formularios

Estos son los diferentes tipo de controles que pueden incluirse en un formulario:


Explicación previa

Para que un control envíe información es necesario:

El siguiente ejemplo muestra un ejemplo de formulario:

<form action="ejemplo.php">
  <p>Nombre: <input type="text" name="nombre" /></p>
  <p><input type="submit" value="Enviar" /></p>
</form>

Nombre:

Para comprobar que el fichero php está recibiendo la información enviada por el control, lo más fácil es utilizar la función print_r($_REQUEST) que muestra el contenido de la matriz $_REQUEST.

El siguiente ejemplo muestra lo que escribiría el programa PHP si recibiera la información del formulario anterior.

<?php
  print_r ($_REQUEST);
?>
Array ( [nombre] => Pepito Conejo)

En los ejemplos que se encuentran en esta página, cada ejemplo muestra el código fuente de la página html, el aspecto que tiene el control y el contenido de la matriz $_REQUEST cuando se recibe la información.

Volver al principio


Caja de texo, caja de contraseña y área de texto

Este control se envía siempre. El valor enviado es el contenido de la caja o área.

Código fuente Control $_REQUEST
<input type="text" name="cajatexto1" /> Array ( [cajatexto1] => )
<input type="text" name="cajatexto2" value="Cualquier cosa" /> Array ( [cajatexto2] => Cualquier cosa )
<input type="password" name="cajapassword1" /> Array ( [cajapassword1] => )
<input type="password" name="cajapassword2" value="pezespada" /> Array ( [cajapassword2] => pezespada )
<textarea rows="4" cols="20" name="areadetexto1"></textarea> Array ( [areadetexto1] => )
<textarea rows="4" cols="20" name="areadetexto2">Cualquier cosa</textarea> Array ( [areadetexto2] => Cualquier cosa )

Volver al principio


Casilla de verificación

Este control se envía solamente si se marca la casilla. El valor enviado es "on" si la casilla no tiene definido el atributo value o el valor del aributo value si éste está definido.

Código fuente Control $_REQUEST
<input type="checkbox" name="casilla1" /> (sin marcar) Array ( )
<input type="checkbox" name="casilla2" /> (marcada) Array ( [casilla2] => on )
<input type="checkbox" name="casilla3" value="Tres" /> (marcada) Array ( [casilla3] => Tres )

Volver al principio


Botón radio

Este control se envía solamente si se marca alguno de los botones radio que forman el control. El valor enviado es "on" si el botón marcado no tiene definido el atributo value o el valor del atributo value si éste está definido.

Código fuente Control $_REQUEST
<input type="radio" name="radio1" />
<input type="radio" name="radio1" />
(sin marcar) Array ( )
<input type="radio" name="radio2" />
<input type="radio" name="radio2" />
(marcado uno) Array ( [radio2] => on )
<input type="radio" name="radio3" />
<input type="radio" name="radio3" />
(marcado otro) Array ( [radio3] => on )
<input type="radio" name="radio4" value="Uno" />
<input type="radio" name="radio4" value="Dos" />
(marcado uno) Array ( [radio4] => Uno )
<input type="radio" name="radio5" value="Uno" />
<input type="radio" name="radio5" value="Dos" />
(marcado otro) Array ( [radio5] => Dos )

Volver al principio


Menú

Este control envía siempre la opción elegida. El valor enviado es el contenido de la etiqueta option elegida si la opción elegida no tiene definido el atributo value o el valor del aributo value si éste está definido.

Si el menú admite selección múltiple, entonces el nombre del menú debe acabar con corchetes ([]) y se envía como una matriz, de tantos elementos como opciones se hayan elegido.

Código fuente Control $_REQUEST
<select name="menu1">
  <option selected="selected"></option>
  <option></option>
</select>
Array ( [menu1] => )
<select name="menu2">
  <option selected="selected">Opción 1</option>
  <option>Opción 2</option>
</select>
Array ( [menu2] => Opción 1 )
<select name="menu3">
  <option selected="selected" value="Uno">Opción 1</option>
  <option value="Dos">Opción 2</option>
</select>
Array ( [menu3] => Uno )
<select name="menu4[]" size="3" multiple="multiple">
  <option selected="selected">Opción 1</option>
  <option>Opción 2</option>
  <option>Opción 3</option>
</select>

(Marcados 1 y 3)
Array ( [menu4] => Array ( [0] => Opción 1 [1] => Opción 3 ) )

Volver al principio


Control oculto

Este control se envía siempre y el valor enviado es el valor del atributo value.

Código fuente Control $_REQUEST
<input type="hidden" name="oculto1" /> Array ( [oculto1] => )
<input type="hidden" name="oculto2" value="Cualquier cosa" /> Array ( [oculto2] => Cualquier cosa )

Volver al principio


Botón Envíar (submit)

Este control se envía siempre y el valor enviado es el valor del atributo value.

Código fuente Control $_REQUEST
<input type="submit" value="Submit" /> Array ( )
<input type="submit" value="Submit" name="boton2" /> Array ( [boton2] => Submit )

Nota: Amaya 9.3 no permite establecer el atributo name, salvo editando el código fuente.

Volver al principio


Archivo

El selector de archivo permite enviar un archivo desde el ordenador del cliente al servidor.

En un formulario "normal", este control se envía siempre y el valor enviado es el nombre del archivo elegido.

Código fuente Control $_REQUEST
<input type="file" /> Array ( )
<input type="file" name="archivo1" /> Array ( [archivo1] => loquesea.txt )

Para que este control envíe toda la información, el formulario debe tener el atributo enctype con el valor multipart/form-data y ser enviado con el método POST. La información se almacena entonces en la matriz $_FILES (pero no en la variable $_REQUEST).

Código fuente Control $_FILES
<form enctype="multipart/form-data"
         action="ejemplo.php" method="POST" >
<input type="file"name="archivo2" />
Array ( [archivo2] => Array (
[name] => loquesea.txt
[type] => text/plain
[tmp_name] => C:\ejemplos\loquesea.txt
[error] => 0
[size] => 27890 ) )

Antes de utilizar este control, hay que configurar en el archivo php.ini el tamaño máximo de los archivos que se pueden enviar (mediante la directiva post_max_size) y es conveniente leer el capítulo correspondiente a la subida de archivos del manual de PHP para conocer la manera de evitar los posibles riesgos de seguridad.

Volver al principio


Imagen

Por completar

Volver al principio

Autor: Bartolomé Sintes Marco
Última modificación: 27 de enero de 2006