Salve a tutti, ho scritto questo codice javascript che mi aggiorna la data in tre select menù contenenti rispettivamente giorno, mese e anno.
La funzione updgiorno() viene chiamata all'onchange della select contenenti i mesi e all'onchange della select contenente gli anni e tutto funziona alla perfezione sotto Internet Explorer.
Noto invece che su Firefox non viene eseguito o meglio i giorni non vengono aggiornati, ad esempio scegliendo come mese Aprile, continuo ad avere 31 giorni che sono i giorni di Ottobre (visto che sul body all'onload chiamo la stessa funzione e questa mi setta i giorno, il mese e l'anno corrente, nel mio caso ad esempio 21 ottobre 2008). Anche scegliendo ad esempio il 2000 che è bisestile, a febbraio continuo ad averne 31 così come a giugno e via dicendo... quale può essere il problema?
Codice PHP:
<script type="text/javascript">
function updgiorno(){
var aa = document.getElementById('anno').getAttribute("value");
var mm = document.getElementById('mese').getAttribute("value");
var maxg = 0;
var bisestile = false;
if (((aa % 4 == 0) && ((!(aa % 100 == 0)) || (aa % 400 == 0)))) {
bisestile = true
}
if ((mm==04) || (mm==06) || (mm==09) || (mm==11)){
maxg = 30;
} else {
if (mm==02){
if (bisestile==true){
maxg = 29;
} else {
maxg = 28;
}
} else {
maxg = 31;
}
}
clear();
var gg = document.getElementById('giorno');
var ggatl = <?php echo date(d);?>
for(var i=1; i < (maxg+1); i++){
var opt = document.createElement('option');
opt.value = i;
opt.text = i;
opt.innerHTML = i;
gg.appendChild(opt);
if ((i==ggatl)&&(mm==<?php echo date(m) ?>)){
opt.selected = true;
}
}
}
function clear(){
var ss=document.getElementById('giorno');
for(var i=ss.options.length-1;i>=0;i--){
ss.options[i]=null;
}
}
</script>