Allora, ho apportato delle modifiche, questa è la parte js :
codice:
var date_arr = new Array;
var days_arr = new Array;
var date_a = new Array;
date_arr[0]=new Option("1",31);
date_arr[1]=new Option("2",28);
date_arr[2]=new Option("3",31);
date_arr[3]=new Option("4",30);
date_arr[4]=new Option("5",31);
date_arr[5]=new Option("6",30);
date_arr[6]=new Option("7",31);
date_arr[7]=new Option("8",30);
date_arr[8]=new Option("9",30);
date_arr[9]=new Option("10",31);
date_arr[10]=new Option("11",30);
date_arr[11]=new Option("12",31);
var monthnumber;
function fill_select(f)
{
document.writeln("<SELECT name=\"months\" onchange=\"update_days(FRM)\">");
for(x=0;x<12;x++)
document.writeln("<OPTION value=\""+date_arr[x].value+"\">"+date_arr[x].text);
document.writeln("</SELECT><SELECT name=\"days\"></SELECT>");
selection=f.months[f.months.selectedIndex].value;
this.monthnumber = f.months[f.months.selectedIndex].text;
}
function update_days(f)
{
temp=f.days.selectedIndex;
for(x=days_arr.length;x>0;x--)
{
days_arr[x]=null;
f.days.options[x]=null;
}
selection=parseInt(f.months[f.months.selectedIndex].value);
ret_val = 0;
if(f.months[f.months.selectedIndex].value == 28)
{
year=parseInt(f.years.options[f.years.selectedIndex].value);
if (year % 4 != 0 || year % 100 == 0 ) ret_val=0;
else
if (year % 400 == 0) ret_val=1;
else
ret_val=1;
}
selection = selection + ret_val;
for(x=1;x < selection+1;x++)
{
days_arr[x-1]=new Option(x);
f.days.options[x-1]=days_arr[x-1];
}
if (temp == -1) f.days.options[0].selected=true;
else
f.days.options[temp].selected=true;
}
function year_install(f)
{
document.writeln("<SELECT name=\"years\" onchange=\"update_days(FRM)\">")
for(x=2001;x<2101;x++) document.writeln("<OPTION value=\""+x+"\">"+x);
document.writeln("</SELECT>");
update_days(f)
}
function set_hid_value()
{
document.FRM.getElementById("hid_field").value = this.monthnumber;
}
ho aggiunto una variabile generica : var monthnumber;
dopo di chè ho aggiunto un'istruzione alla funzione fill_select(f), ossia:
this.monthnumber = f.months[f.months.selectedIndex].text;
assegnando alla variabile monthnumber il "testo" del mese contenuto nell'array date_arr.
e ho aggiunto una funzione per scrivere tale valore nel campo hidden della mia form:
codice:
function set_hid_value()
{
document.FRM.getElementById("hid_field").value = this.monthnumber;
}
la parte html è cambiata in:
codice:
<table align="center">
<tr>
<td>
<SCRIPT>fill_select(document.FRM);year_install(document.FRM)</script></td>
<td><input type="hidden" name="hid_field" id="hid_field" value="" /></td>
</tr><tr><td>
<input type="submit" name="submit" value="submit" onClick = "set_hid_value();"/>
</td></tr></table>
</FORM>
impostando l'input hidden e assegnando all'onClick del pulsante submit il compito di eseguire set_hid_value, il quale va allo script php con un semplice $_POST['hid_field']. La logica mi sembra buona.. ma purtroppo non mi ritorna il valore di hid_field...