Diario de un programador.- Día 171
Sigamos con los formularios...
Formulario de lista con barra de desplazamiento
Este tipo de formulario es
muy parecido al anterior, solo que en vez de tener una lista desplegable, se
tiene una lista que se puede navegar mediante una barra de desplazamiento.
Para este ejemplo ocuparé los
mismos días de la semana.
Para este formulario,
solamente cambia la primera línea del código select, lo demás se mantiene sin
cambio, al igual que el otro documento php. El código es el siguiente:
<select name =
"semana"
multiple = "multiple">
<option value = "Lunes">
Lunes </option>
<option value = "Martes">
Martes </option>
<option value = "Miercoles">
Miercoles </option>
<option value = "Jueves">
Jueves </option>
<option value = "Viernes"> Viernes </option>
<option value =
"Sabado"> Sabado </option>
<option value =
"Domingo"> Domingo </option>
</select>
Como se puede ver, se agregó
la palabra multiple = "multiple", la cual permite que se vea una
lista con múltiples datos. El código completo se ve así:
Al ejecutar esto, se debería ver más o menos así:
Y al igual que el caso anterior, al seleccionar un día de la semana
aparece lo siguiente:
Algo que cabe mencionar, es
que en este tipo de formulario se pueden escoger múltiples opciones si se
seleccionan manteniendo presionada la tecla "control". Pero aunque se
puedan escoger múltiples opciones, solamente se enviará una opción al documento
php. Esto es porque solamente un elemento puede ser almacenado en la variable.
Para poder enviar muchos elementos se necesita crear un arreglo. Por este
motivo, voy a modificar el código anterior para que pueda aceptar múltiples
datos. El código quedará así:
<select name = "semana[]"
multiple = "multiple">
<option> Lunes </option>
<option> Martes </option>
<option> Miercoles </option>
<option> Jueves </option>
<option> Viernes </option>
<option> Sabado </option>
<option> Domingo </option>
</select>
Se puede ver como la palabra
"semana" ahora lleva corchetes, indicando que ahora es un arreglo.
El otro documento php, el
que recibe los datos, se modificó para que responda algo si es que ningún dato
es seleccionado, quedando de la siguiente manera:
if
(isset($_POST["semana"])){
echo "Los
dias seleccionados son:<br> ";
foreach
($_POST["semana"] as $valor){
echo $valor, "<br>";
}
}
else{
echo
"Ninguna semana seleccionada";
}
La función isset()
permite probar si existe una variable. Si existe devuelve true y si no existe
devuelve false
Al ejecutar el archivo y seleccionar varios días de la semana, debería
quedar así:
Al presionar el botón de enviar, esto es lo que debería de mostrar:
Formulario de casillas de selección
Este tipo de formulario es
comúnmente usado cuando se necesita que el usuario ingrese múltiples opciones
Al igual que el caso
anterior, aquí también se ocupan arreglos, por lo que el nombre
"semana" irá con corchetes. El código para esto es el siguiente:
<input type =
"checkbox" name = "semana[]" value = "lunes"/>
Lunes <br/>
<input type = "checkbox" name =
"semana[]" value = "martes"/> Martes <br/>
<input type = "checkbox" name =
"semana[]" value = "miercoles"/> Miercoles <br/>
<input type = "checkbox" name =
"semana[]" value = "jueves"/> Jueves <br/>
<input type = "checkbox" name =
"semana[]" value = "viernes"/> Viernes <br/>
<input type = "checkbox" name = "semana[]"
value = "sabado"/> Sabado <br/>
<input type = "checkbox" name =
"semana[]" value = "domingo"/> Domingo <br/>
value corresponde al dato
que se enviará al otro documento php. En un documento que leí en la web,
mencionaba que value era opcional, así que en primera instancia había escrito
el código sin usar value. Estuve un buen rato buscando que era lo que pasaba ya
que el código no funcionaba, así que probé a colocar value y entonces funcionó
bien. El error que me aparecía al no usar value, era que en el otro documento
php, no me aparecía el día de semana seleccionado. Aparecía lo siguiente:
Me aparecía la palabra
"on" y no entendía por qué. Hasta que añadí lo mencionado
anteriormente.
El código completo se vería
más o menos así:
El otro documento php se mantiene de la misma forma que en el
formulario anterior, o sea así:
if (isset($_POST["semana"])){
echo "Los
dias seleccionados son:<br> ";
foreach
($_POST["semana"] as $valor){
echo $valor, "<br>";
}
}
else{
echo
"Ninguna semana seleccionada";
}
Al ejecutar el código, algo como esto se debería de ver:
Si en este formulario,
selecciono por ejemplo los días lunes, miércoles y domingo, en el otro
documento se debería ver así:
Esto es todo por ahora, en el próximo tutorial se dará por finalizado esto de los formularios y además se solicitaría un pequeño ejercicio para aplicar lo aprendido. Saludos
Gustavo J. Cerda Nilo
Mayo 2016, Septiembre 2016
No hay comentarios:
Publicar un comentario