Formularios

La gestión de formularios es una de las mejores características de PHP. La combinación de HTML para construir formularios, PHP para gestionar datos y MySQL para almacenarlos son una de las tareas mas eficientes.

Nunca use datos sin filtrar en una consulta a BD. Siempre use NAME para cada elemento, al enviar se convertiran en variables. Use VALUE para establecer valores predeterminados.

Etiquetas de formulario
EtiquetaDescripción
FormDebe tener Method (GET o POST) y puede tener Action y accept-charset.
InputCon Type se determina su formato: submit, text, checkbox, radio, password, hidden, URL, number, range, file, image, datetime, color, etc. Recuerdo siempre determinar Name.
ButtonCon Type se determina el formato: button, submit, etc
LabelDefine una etiqueta para los botones type=input.
SelectDefine una lista desplegable.
TextareaUse optiman para determinar las opciones. SELECTED para el seleccionado.
KeygenPara facilitar la generación de claves de certificados.

Puede crear el formulario en HTML y la gestión de datos en un script PHP separado asociado con ACTION.

1.GET

El método GET pasa argumentos de una pagina a la siguiente como parte de la URL, en formato de pares tipo nombre=valor separando el primero con ? y los siguientes con &.

<Form Method=GET accept-charset='UTF-8'>

Cuidado cuando se usa GET, los datos del formulario enviado serán visibles con la URL de la página

2.POST

Es el método preferido de envío de formularios porque los pares de valores no son visibles.

<Form Method=POST accept-charset='UTF-8'>

3. Autoenvio

Se llama asi cuando el mismo script contiene el formulario y su gestión de datos.

Recuerde que la lógica siempre estará antes que la visualización. Es recomendable usar el botón type=SUBMIT como variable de nivel.

Puede recuperar los datos enviado mediante el método GET o POST con $_REQUEST[]

if (isset($_REQUEST['reg'])) {
	$reg = $_REQUEST['reg'];
}

4. Autoseleccion de un SELECT

Muchas veces recuperamos las opciones de un registro y luego tenemos que seleccionar (SELECTED) la opción adecuada. Una solucion es ir preguntando si se leigio esa opcion miestras construimos el formulario asi:

<select name=cat id=cat>
   <option value=H5
      <?PHP if ($cat == 'H5'){echo ´ SELECTED´};?>
   >Hotel 5
	<option value=H4
      <?PHP if ($cat == 'H4'){echo ´ SELECTED´};?>
   >Hotel 4
	<option value=H3
      <?PHP if ($cat == 'H3'){echo ´ SELECTED´};?>
   >Hotel 3
	<option value=H2
      <?PHP if ($cat == 'H2'){echo ´ SELECTED´};?>
   >Hotel 2
	<option value=H1
      <?PHP if ($cat == 'H1'){echo ´ SELECTED´};?>
   >Hotel 1
	<option value=NC
      <?PHP if ($cat == 'NC'){echo ´ SELECTED´};?>
   >No clasificado
</select>

Pero una solución mucho mas eficiente es usar jQuery asi:

<select name=cat id=cat>
   <option value=H5>Hotel 5
	<option value=H4>Hotel 4
	<option value=H3>Hotel 3
	<option value=H2>Hotel 2
	<option value=H1>Hotel 1
	<option value=NC>No clasificado
</select>
<!-- Selecciono la opción adecuada del select -->
<Script>$('#cat option[value=<?PHP echo $cat; ?>]').attr('selected',true);</Script>