Ver índice
Añadir a través de formularios

        Ocultar índice  

   Índice de contenidos
   Instalación en Windows
   Instalación en Ubuntu
   Servidores seguros
   Páginas dinámicas
   Sintaxis básica
   Operaciones
   Arrays
   Formatos de presentación
   Operadores
   Bucles
   Extraer y ord. información
   Funciones
   Ficheros externos
   Imágenes dinámicas
   Gestión de directorios
   Cookies y sesiones
   Clases y objetos
   Ficheros en formato PDF
   Bases de datos MySQL
   PHP y XML
   PDO - Bases SQLite / MySQL
   MySQL a traves de misqli
   Algo de JavaScript y AJAX


Los valores de SELECT MULTIPLE

La opción SELECT MULTIPLE dentro de un form típico de HTML permite elegir ninguno, uno o varios de los elementos de la lista. Basta con pulsar con el ratón sobre cada uno de los valores elegidos manteniendo pulsada la tecla Ctrl, es decir, puro Windows.

Para recoger los valores de esa opción se define -dentro de la etiqueta SELECT- un name tipo array. Bastaría con escribir:

SELECT MULTIPLE name=variable[ ] SIZE=6>

Como ves, variable es el nombre de la variable (esta vez sin $ delante, recuerda que no estamos en PHP sino en HTML) y va seguido de [ ] precisamente para indicar que es un array.

Lo que respecta a SIZE=6 no es otra cosa que el parámetro que indica cuántos elementos de la lista de opciones queremos que se visualicen simultáneamente en la página.

El elemento más importante son los values de cada option dentro de ese select. Los hemos escrito así:

<option value=1>Castellano
<option value=2>Francés
<option value=4>Inglés
<option value=8>Alemán
<option value=16>Búlgaro
<option value=32>Chino

Fíjate que hemos mantenido exactamente el mismo orden en el que han sido definidos en el campo SET de la tabla. Observa también los valores: 1, 2, 4, 8, 16 y 32 que son precisamente las potencias de 2:

20, 21, 22, 23, 24, 25, y 26

Al ir seleccionando valores, van añadiéndose al array. Por ejemplo. Si seleccionamos Francés y Búlgaro el array sería este: var[0]=2, var[1]=16

Si sumamos esos valores (2 + 16) el resultado sería 18, y al convertir a binario este valor, resultará: 010010 que es como decirle a MySQL (mirando la cadena de derecha a izquierda, ¿lo recuerdas?) que incluya los valores segundo (Francés) y quinto (Búlgaro) del SELECT MULTIPLE que corresponden a las posiciones en las que la cadena binaria contiene un uno.

Creación del formulario

El caso más frecuente -casi el único- es que los registros de una tabla se añadan utilizando un formulario y enviando desde él los datos a un script PHP que ejecute la opción de añadir. Si no recuerdas el funcionamiento de este método, pulsa aquí

En el ejemplo hemos desarrollado un formulario para añadir registros a la tabla demo4 con las siguientes peculiaridades:

Pues bien, aquí tienes, código fuente del formulario que hemos diseñado

Ver código fuente

Añadir nuevo registro con datos del formulario

Como recordarás, cuando se envía el contenido de un formulario mediante el method=POST y se indica como action un fichero PHP los valores enviados son recogidos en este último fichero en variables de PHP que tienen como nombre $_POST['var'] –o $HTTP_POST_VARS['var']– donde cada una de los índices asociativos de los array (var) coinciden con los name de los diferentes campos del formulario.

A partir de ahí, bastaría con depurar los valores recibos, recoger en variables los valores depurados e incluirlos en la sentencia MySQL INSERT -la hemos visto en la página anterior- para añadirlos a la tabla correspondiente. Aquí tienes –comentado– el script:

Añadir registros Código fuente del script

En realidad, tal como habrás podido ver en el código fuente, la depuración ha sido la siguiente: