Als ik in PHP een option list wil maken, doe ik iets als
Het resultaat is dan een keurige option list:
Nu wil ik hetzelfde in Javascript fabriceren. Ik heb eea gelezen over associatieve array's in javascript, en bedacht dat de volgende array zou moeten werken:
Toch werkt dit niet. Het begint al bij het feit dat options.length, nul is. Toch zeggen diverse pagina's die ik las, dat dit een goede manier is om een javascript array te bouwen. Wat doe ik verkeerd?
PHP:
1
2
3
4
5
6
7
8
| $options = array('a' => 'Appels', 'b' => 'Boter', 'c' => 'Cake'); $selected = 'b'; foreach ($options as $value => $text) { $selected = ($value == $selected) ? 'selected' : ''; $list.= '<option value="' . $value . ' ' . $selected . '">' . $text . '</option>'; } echo sprintf("<select>%s</select>", $list); |
Het resultaat is dan een keurige option list:
HTML:
1
2
3
4
5
| <select> <option value="a">Apples</option> <option value="b" selected>Boter</option> <option value="c">Cake</option> </select> |
Nu wil ik hetzelfde in Javascript fabriceren. Ik heb eea gelezen over associatieve array's in javascript, en bedacht dat de volgende array zou moeten werken:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
| var options = new Array(); var selected = 'b'; options['a'] = 'Appels'; options['b'] = 'Boter'; options['c'] = 'Cake'; for (var i = 0; i < options.length; i++) { selected = (options[i] == selected) ? 'selected' : ''; list += '<option value="'+options[i]+' '+selected+'">'+options[i].value+'</option>'; } document.write('<select>'+list+'</select>'); |
Toch werkt dit niet. Het begint al bij het feit dat options.length, nul is. Toch zeggen diverse pagina's die ik las, dat dit een goede manier is om een javascript array te bouwen. Wat doe ik verkeerd?
[ Voor 22% gewijzigd door Reveller op 29-05-2006 22:11 ]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."