dit stuk script heb ik ergens gevonden. De bedoeling is om een datum te selecteren door middel van 3 dropdowns en deze te submitten. Het probleem is dat hij geen maandnummers meegeeft, maar het aantal dagen wat bij de maand hoort.
Deze staan in de array ("January", 31). Als waardes willen we dus hebben, als je bijvoorbeeld January selecteert: "01".
Array ( [months] => 31 [days] => 8 [years] => 2001 ) (January)
En wat wij willen wordt dus:
Array ( [months] => 01 [days] => 8 [years] => 2001 ) (January)
Deze staan in de array ("January", 31). Als waardes willen we dus hebben, als je bijvoorbeeld January selecteert: "01".
code:
Als je nu submit is de output:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
| var date_arr = new Array;
var days_arr = new Array;
date_arr[0]=new Option("January",31);
date_arr[1]=new Option("February",28);
date_arr[2]=new Option("March",31);
date_arr[3]=new Option("April",30);
date_arr[4]=new Option("May",31);
date_arr[5]=new Option("June",30);
date_arr[6]=new Option("July",31);
date_arr[7]=new Option("August",30);
date_arr[8]=new Option("September",30);
date_arr[9]=new Option("October",31);
date_arr[10]=new Option("November",30);
date_arr[11]=new Option("December",31);
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;
}
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)
}
</script>
<FORM ACTION="xxx" name="FRM">
<SCRIPT>fill_select(document.FRM);year_install(document.FRM)</script>
</FORM> |
Array ( [months] => 31 [days] => 8 [years] => 2001 ) (January)
En wat wij willen wordt dus:
Array ( [months] => 01 [days] => 8 [years] => 2001 ) (January)