Muchas veces cuando presentamos formularios en nuestros sitios o sistemas Web, necesitamos que los usuarios ingresen una fecha para utilizar como parámetro. El principal problema que se presenta es asegurarnos que esta fecha se ingrese en el formato ideal.
Una de las mejores respuestas para esta inquietud es integrar un calendario al formulario, el cual además de darnos el formato requerido, presenta una funcionalidad atractiva visualmente para quienes hacen uso del sitio.
Hoy en CLH, les enseñaremos mediante un sencillo tutorial a realizar esta tarea.
El detalle, como siempre, después del salto.
Como siempre, lo primero:
Con todo lo necesario, vamos, manos a la obra:
1.- Lo primero que debemos hacer es confeccionar un formulario al cual le añadiremos un campo de texto para ingresar la fecha. Si tienen dudas sobre como crear un formulario, pueden revisar este tutorial donde hemos cubierto el proceso por completo.
2.- Una vez que tenemos nuestro formulario listo y hemos descargado la librería Popcalendar (indicada en la sección Implementos Necesarios), debemos descomprimirla en alguna parte de nuestro computador.
Al descomprimir, tendremos una serie de archivos. Debemos mover popcalendar.js y el directorio images a la carpeta donde tenemos alojado nuestro sitio Web con el formulario (ya sea local o en algún FTP de alojamiento Web). Es muy importante mantener la estructura de rutas. Si deseamos mover las imágenes, debemos editar las rutas de estas en el archivo .js.
3.- A continuación, debemos realizar la edición en el archivo de la página donde tenemos el formulario y añadiremos, entre las etiquetas head y /head lo siguiente:
<script language=’javascript’ src=’popcalendar.js’></script>
Con ese trozo de código lo que hemos hecho es incluir la librería correspondiente al calendario a la página con nuestro formulario. El atributo src corresponde a la ubicación del script, por lo que solo debemos mantenerlo así si es que la hemos guardado en el mismo directorio que nuestra página. De lo contrario, debemos modificar aquella ruta para que realice la llamada como corresponde.
4.- Luego que hemos realizado la inclusión del archivo, debemos hacer la modificación correspondiente en el campo de texto donde queremos que se ingrese la fecha.
Lo que haremos será añadir un atributo a este campo de texto llamado onClick, de esta forma cuando un usuario haga click sobre el campo de texto (intentando escribir por ejemplo) se desplegará el calendario en pantalla para que seleccionen la fecha y esta se escribirá automáticamente en el formato que definamos sobre el campo.
Así que revisamos el código de nuestro formulario y vamos a la etiqueta correspondiente al campo de texto de la fecha, por ejemplo, en este caso, tendríamos algo como:
<input name=”fecha” type=”text” size=”10″ id=”fecha” />
A esa etiqueta debemos agregarle una pequeña modificación para que sepa que debe realizar la llamada al calendario, por lo que modificaremos el atributo id y añadiremos onClick tal como habíamos detallado antes (en negrita lo que añadiremos/cambiaremos):
<input name=”fecha” type=”text” size=”10″ id=”dateArrival” onClick=“popUpCalendar(this, form1.dateArrival, ‘dd/mm/yyyy’);”>
Pues bien, ¿qué hicimos aquí?
Una vez que hemos hecho las ediciones, guardamos el archivo y probamos todo. Al hacer click en el campo, nos mostrará el calendario con las fechas correspondientes, parecido a este:
Simple, ¿no? Ahora podemos añadir una atractiva funcionalidad que sera muy útil tanto para nuestros usuarios como para nosotros al momento de manipular los datos.
Es común que al implementar el calendario no resulte la primera vez, les recomendamos fijarse en la etiqueta del formulario, que las comillas esten bien definidas, eso es un problema común.
Adicionalmente, si necesitamos implementar más de un calendario en la misma página podemos hacerlo de la misma forma, solo asegurándonos de cambiar el atributo id de la etiqueta para que no sea el mismo.
Con esto damos por terminado este tutorial, esperamos que sea de utilidad y agrado de Uds.
Y recuerden que como siempre, esto ha sido:
Cualquier duda o comentario que puedan tener, los invitamos a dejarnos unas líneas en el área habilitada a continuación.
Muchas gracias por leer y será hasta una próxima oportunidad.
12:22:19 am
realmente muchas gracias, pude solucionar todos mis problemas :)!! me ha servido muchisimo encontrar este calendario para web en dreamweaver html!!
11:47:31 am
Buenas tardes, a mi no me funciona. Tengo un formulario medio php y medio html. el archivo es un .php
Tengo varios scripts en java para la comprobacion del formulario. Espero que este no sea el problema. En el archivo de php el campo de fecha lo tengo asi
echo ‘Fecha: ‘;
entre y he puesto el codigo:
Los archivos los he puesto en su sitio, tanto el .js como las imagenes.
Pero al hacer click en el campo de fecha no hace nada de nada….
Tuve problemas al copiar y pegar por las comillas pero creo que los solucione bien.
No se que le puede pasar, seguro que luego es cualquier tonteria…
Saludos
11:50:06 am
Perdon no me copio el codigo…
En el php puse
echo ‘Fecha: ‘;
Y entre los head puse:
script language=”javascript” src=”popcalendar.js” /script
11:52:06 am
Otra vez perdon jejeje al ser html esto no me coge bien las etiquetas.. quito los signos raros. Perdonad
echo ‘ p Fecha: input name=”fecha” type=”text” size=”10″ id=”dateArrival” onClick=”popUpCalendar(this, formulario.dateArrival, dd/mm/yyyy)”; /p’;
11:09:09 am
Perdon, ya lo resolvi. No me funcionaba en local pero cuando lo subi a la web si que funciona.
6:51:06 pm
como hago para poner dos en un mismo formulario..Gracias
9:33:46 pm
hola esta padrisimo pero como hago para guardar la fecha?? en mi base de datos
2:25:37 pm
MALPARIDO CHUPONES HP BUENOS PARA ND HIJOS DE PERRA
10:39:02 pm
Hola, gracias por tuto, me ha funcionadop en c# en visula estudio y en firefox, solo coloque todo en el lugar que queria que se mostrara, el archivo js y las imagenes las puse en el mismo nivel que donde esta el formulario.
solo tengo una duda como puedo capturar la fecha para poderla enviar a una base de datos.
normalmente yo pongo txtcalendar.text y lo capturo, pero en este no me deja, y si le pongo el runat”server”, la pagina me da error.
alguien tiene alguna idea?.
saludos y gracias
12:47:24 pm
excelente aporte…. me funciona super… me desembalaste. gracias….!