Ik heb 2 dropdowns waarvan de eerste gevuld wordt met categorieen uit een database. de 2e moet gevuld worden met de subcategorieen van de geselecteerde categorie in de eerste dropdown.
via die forum heb ik wat gespiekt en tot de volgende oplossing gekomen, de arrays worden gegenereerd met php. Voor zover ik zie zou het prima moeten werken. Als de hoofdcategorie geselecteerd wordt roept ie setBox aan en zou de subcategorie gevuld moeten worden met de waardes in het passende array (arr1, arr2, enzovoorts).
Het probleem is echter dat ie maar de eerste 5 items eruit pakt en dan stopt
. Ben er ondertussen achter dat als ik de lengte van de arrays opvraag in de functie met alert(arr1.length) de lengte neerkomt op 5, wat niet correct is. Als ik een array hard erin programmeer (zeg arr50 met 10 entries) en dan de lengte opvraag binnen de functie dan klopt het wel.
Hoe kan dit? ik snap er niks meer van.
via die forum heb ik wat gespiekt en tot de volgende oplossing gekomen, de arrays worden gegenereerd met php. Voor zover ik zie zou het prima moeten werken. Als de hoofdcategorie geselecteerd wordt roept ie setBox aan en zou de subcategorie gevuld moeten worden met de waardes in het passende array (arr1, arr2, enzovoorts).
Het probleem is echter dat ie maar de eerste 5 items eruit pakt en dan stopt
Hoe kan dit? ik snap er niks meer van.
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
| <script language="javascript">
arr1 = new Array("Beroemdheden","Boeken","Films","Humor","Muziek","Podiumkunsten","Tv en Radio");
arr2 = new Array("Adviesbureaus","Bedrijven","Beroepen","Industriebedrijven","Kleine Ondernemingen","Loopbaan","Thuiswerk","Werkplaats");
arr3 = new Array("Besturingssystemen","Gebruikers","Hardware","Internet","Programmeren","Software");
arr4 = new Array("Algemene Wetenschappen","Alternatieve Wetenschappen","Astronomie","Biologie","Fysica","Geschiedenis","Sociale Wetenschappen","Weer","Wiskunde");
arr5 = new Array();
arr6 = new Array();
arr7 = new Array();
arr8 = new Array();
arr10 = new Array();
arr11 = new Array();
arr12 = new Array();
arr13 = new Array();
arr14 = new Array();
arr15 = new Array();
arr16 = new Array();
arr17 = new Array();
arr18 = new Array();
function setBox(arrNr)
{
document.newgroup.subcat.length=0;
for(i=0; i<=arrNr.length; i++)
{
document.newgroup.subcat.length++;
document.newgroup.subcat.options[i].text = eval(arrNr)[i];
document.newgroup.subcat.options[i].value = eval(arrNr)[i];
}
}
</script>
<select name="cat" onchange="setBox(this.value)">
<option value="">Hoofdcategorie</option>
<option value="arr1">Amusement</option>
<option value="arr3">Computers en Internet</option>
enzovoorts
<option value="arr2">Zakelijk</option>
</select>
<select name="subcat">
<option>Subcategorie</option>
</select> |