Zit met een probleempje:
Heb 3 <select>'s met daarin een aantal opties:
-land
-provincie
-departement
Het is de bedoeling dat wanneer je een land selecteerd, je alleen de provincies ziet staan die bij dat land horen. Dat gedeelte werkt inmiddels, maar nu wil ik het zo maken dat als je een ander land wil selecteren, de originele provincies weer terug komen (zodat als je een fout land selecteerd niet de hele pagina opnieuw hoeft te laden!).
Daarvoor had ik het volgende bedacht: ik backup eerst alle waardes voordat ik de waardes die niet bij het land horen verwijder mbv ".options[] = null" in javascript
Zodra dan een ander land word gekozen wordt deze backup teruggezet.
Het selecteer gedeelte werkt prima, wanneer ik een land selecteer komen keurig de juiste provincies zichtbaar, maar het backuppen kom ik niet uit!
Iemand een idee hoe ik dit het beste kan oplossen..
Javascript:
HTML:
Heb 3 <select>'s met daarin een aantal opties:
-land
-provincie
-departement
Het is de bedoeling dat wanneer je een land selecteerd, je alleen de provincies ziet staan die bij dat land horen. Dat gedeelte werkt inmiddels, maar nu wil ik het zo maken dat als je een ander land wil selecteren, de originele provincies weer terug komen (zodat als je een fout land selecteerd niet de hele pagina opnieuw hoeft te laden!).
Daarvoor had ik het volgende bedacht: ik backup eerst alle waardes voordat ik de waardes die niet bij het land horen verwijder mbv ".options[] = null" in javascript
Zodra dan een ander land word gekozen wordt deze backup teruggezet.
Het selecteer gedeelte werkt prima, wanneer ik een land selecteer komen keurig de juiste provincies zichtbaar, maar het backuppen kom ik niet uit!
Iemand een idee hoe ik dit het beste kan oplossen..
Javascript:
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
| <script type="text/javascript" LANGUAGE="JavaScript1.2">
var selectedland = 0;
var tmp_provincies = Array();
var tmp_departementen = Array();
var dobackup = true;
function backupProvincies(arr)
{
if(dobackup == true)
{
var _tmp_prov = Array();
var cnt = 0;
for (var i = document.getElementById('advertentie_prov_id').options.length-1; i > 0; i--)
{
deze = document.getElementById('advertentie_prov_id').options[i];
_tmp_prov[deze.value] = deze.text;
cnt++;
}
alert('backupped ' + cnt + ' values LAST: ' + deze.value);
return _tmp_prov;
}
//else
//{
// alert('geen backup nodig!');
//}
}
function setLand(oldland, newland, arraytje)
{
//var arrie = tmp_provincies.copy();
alert(typeof(arraytje));
if (oldland != newland && oldland != 0)
{
alert('restoring');
for (var i = arrie.length; i > 0; i--)
{
document.getElementById('advertentie_prov_id').options[i] = null;
document.getElementById('advertentie_prov_id').options[i] = new Option(i, tmp_provincies[i]);
}
}
for (var i = document.getElementById('advertentie_prov_id').options.length-1; i > 0; i--)
{
var waarde = document.getElementById('advertentie_prov_id').options[i].value;
var sjoep = waarde.split("_");
deze = document.getElementById('advertentie_prov_id');
if (sjoep[1] != newland)
{
deze.options[i] = null;
}
else
{
deze.options[i].value = sjoep[0];
}
}
dobackup = false;
return newland;
}
function setProvincie(provincie)
{
var zezijner = false;
for (var i = document.getElementById('advertentie_dep_id').options.length-1; i > 0; i--)
{
var waarde = document.getElementById('advertentie_dep_id').options[i].value;
var sjoep = waarde.split("_");
deze = document.getElementById('advertentie_dep_id');
if (sjoep[1] != provincie)
{
deze.options[i] = null;
}
else
{
var zezijner = true;
deze.options[i].value = sjoep[0];
}
}
if (!zezijner)
{
deze.options[0] = new Option ('Geen resultaten..', '0');
}
}
</script> |
HTML:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| <tr class="odd">
<td>Land</td>
<td><select name="advertentie[land_id]" onChange="tmp_provincies = backupProvincies(tmp_provincies); selectedland = setLand(selectedland, this.value, tmp_provincies); setStyleById('provincie_s', 'visibility', 'visible');" id="advertentie_land_id">OPTIES!</select></td>
<td>Minimale capaciteit</td>
<td><input name="advertentie[capaciteit_min]" type="text" size="3" maxlength="3" id="advertentie_capaciteit_min" /></td>
</tr>
<tr class="even">
<td>Provincie <span id="provincie_s" style="color: red; visibility: hidden; font-weight: bold;">» Gesorteerd!</span> </td>
<td><select name="advertentie[prov_id]" onChange="setProvincie(this.value); setStyleById('departement_s', 'visibility', 'visible');" id="advertentie_prov_id">OPTIES!</select></td>
<td>Maximale capaciteit</td>
<td><input name="advertentie[capaciteit_max]" type="text" size="3" maxlength="4" id="advertentie_capaciteit_max" /></td>
</tr> |