Segunda Aplicacion con AJAX ... y Prototype
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];
?>
Recientemente se publico la versión 0.8 de este interesante framework: 





Interesante utilidad que crear un efecto interesante con texto e imágenes: El texto se acomoda muy bien al contorno de una imágen, cualquiera sea su forma. Es común ver posts con imágenes incluidas, sin embargo algunas con mucho espacio en blanco (por ejemplo el planeta tierra con fondo blanco, deja muchas esquinas en blanco que podrían usarse) como que no va con la estética de la página. Este efecto se puede lograr en las aplicaciones de escritorio como MS Word ó OpenOffice, pero en HTML es imposible. Sin embargo gracias a JavaScript y Canvas no lo es.

