Esta pequeña aplicación sencilla, consiste en seleccionar el numero del cierto mes de una lista y en otra lista aparecen los numeros de días. Si seleccionamos el numero de mes que corresponde a Febrero (2) la lista mostrará 29 días, y así por el estilo.
Veamos, la parte HTML donde también incluimos el código JavaScript haciendo uso de funciónes de Prototype.js:
<html> <head> <title>Prototype Segunda Aplicacion</title> <script type="text/javascript" src="http://www.prototypejs.org/assets/2008/9/29/prototype-1.6.0.3.js"></script> <script type="text/javascript"> //enviando el numero del mes function send(value){ //eliminando los dias del mes anterior var length=$("day").length; for (i=0;i<length;i++){ $("day").remove(0); } //nos conectamos con response.php //que nos dará el numero de dias segun el mes new Ajax.Request( './response.php',{ method: "get", parameters: {month: value}, onSuccess: function(response){ var days=response.responseText; for (i=1;i<=days;i++){ $("day").options.add(new Option(i,i)); } }, onFailure: function(){ alert('Failed!'); //en caso de errores } } ); } //esta función se ejecuta al iniciar //consiste en llenar las dos lista con //el primer mes y sus dias correspondientes
function init(){ for (i=1;i<=12;i++){ $("month").options.add(new Option(i,i)); } for (i=1;i<=31;i++){ $("day").options.add(new Option(i,i)); } } </script> </head> <body onLoad="init();"> <p> Mes: <select id="month" onChange="send(this.value);"></select> Dia: <select id="day"></select> </p> </body> </html>
Ahora veamos el archivo response.php:
<?php $d=$_GET['month']; //definimos un array con los maximos de dias de cada mes $days=array(31,29,31,30,31,30,31,31,30,31,30,31); //mostramos según el numero del mes echo $days[$d-1]; ?>