miércoles, 14 de septiembre de 2016

Capítulo 71. PHP: Continuando con los formularios. Parte 2


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



http://codigogx.blogspot.cl/2016/09/capitulo-71-php-continuando-con-los.htmlhttp://codigogx.blogspot.cl/2016/09/capitulo-71-php-continuando-con-los_18.html

No hay comentarios:

Publicar un comentario

C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...