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>