Soy del parecer de Triby: en jquery encontarás calendarios muy buenos.
Respondiendo a tu pregunta de optimización:
Código PHP:
<?php
function GetOptions($ini,$fin,$valor){
for($i=$ini;$i<$fin;$i++){
$return.="<option value='$i'".$valor==$i?" selected":"".">$i</option>";
}
return $return;
}
?>
<select name='diaini' id='diaini'>
<option value=''>Dia:</option>
<?php echo GetOptions(1,32,$_POST["diaini"]);?>
</select>
<select name='mesini' id='mesini'>
<option value=''>Mes:</option>
<?php echo GetOptions(1,13,$_POST["mesini"]);?>
</select>
bla bla.....
Saludos.