Toon posts:

[javascript] Dateselector: Maandnummers meegeven

Pagina: 1
Acties:
  • 39 views sinds 30-01-2008

Verwijderd

Topicstarter
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".

code:
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>
Als je nu submit is de output:
Array ( [months] => 31 [days] => 8 [years] => 2001 ) (January)
En wat wij willen wordt dus:
Array ( [months] => 01 [days] => 8 [years] => 2001 ) (January)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:53

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • André
  • Registratie: Maart 2002
  • Laatst online: 00:33

André

Analytics dude

Bij nader inzien kan wat jij wil niet met dit script, de maanden hebben die value zodat de dagen pulldown gevuld kan worden. Je zult de array anders moeten opzetten en de pulldown anders invullen.

[ Voor 92% gewijzigd door André op 06-05-2004 13:11 ]


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 12:21

Pelle

🚴‍♂️

Tsja, je hebt niet echt heel veel zelf geprobeerd zo te zien. Wij gaan hier niet de scripts aan zitten passen die jij weer ergens anders vandaan hebt :)

Dit topic is gesloten.