Om het selecteren uit een grote lijst (>1000 items) gemakkelijker te maken, heb ik een soort dynamisch selectiefilter gemaakt, waarmee je terwijl je typt het resultaat in een multiple select item ziet en je middels toevoegen en verwijderen knoppen items in je resultaat kan selecteren en verwijderen. Deze functionaliteit zal deel uit gaan maken van een groter formulier.
Ik heb het geheel werkend in Firefox, maar IE7 weigert dienst. Ik heb gezocht op internet naar oorzaken hiervan, maar heb eigenlijk te weinig aanknopingspunten om écht goed mee te zoeken, dus ik vond dan ook niks. Ik hoop dat iemand van jullie weet waar het aan zou kunnen liggen...
Hier is mijn Ajax-script (gebaseerd op de w3c-ajax-tutorial):
En dit zijn de bijbehorende event-functies:
Ik vermoed dat het met name in deze laatste event-scripts zit, maar ik kan niet vinden wat dan het probleem is.
Je kan de functionaliteit hier in werking zien: http://www.scholtobos.dds.nl/redactie/intellisearch.php
Er staan pas drie testitems in de lijst, maar je ziet snel genoeg dat het in IE niet werkt... Ik hoop dat jullie iets weten, in elk geval alvast bedankt voor de moeite!
Ik heb het geheel werkend in Firefox, maar IE7 weigert dienst. Ik heb gezocht op internet naar oorzaken hiervan, maar heb eigenlijk te weinig aanknopingspunten om écht goed mee te zoeken, dus ik vond dan ook niks. Ik hoop dat iemand van jullie weet waar het aan zou kunnen liggen...
Hier is mijn Ajax-script (gebaseerd op de w3c-ajax-tutorial):
JavaScript:
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
| function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return false; } } } return xmlHttp; } function stateChanged() { if (xmlHttp.readyState==4) { document.getElementById('select').innerHTML=xmlHttp.responseText; } } function populate() { xmlHttp = GetXmlHttpObject(); if (xmlHttp) { xmlHttp.onreadystatechange = stateChanged; xmlHttp.open("GET","intellisearch.php?q="+document.getElementById('search').value,true); xmlHttp.send(null); } } |
En dit zijn de bijbehorende event-functies:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| function select() { document.SearchAndSelect.selectedbox[document.SearchAndSelect.selectedbox.length] = new Option( document.SearchAndSelect.selectbox[document.SearchAndSelect.selectbox.selectedIndex].text, document.SearchAndSelect.selectbox[document.SearchAndSelect.selectbox.selectedIndex].value, false ); } function remove() { document.SearchAndSelect.selectedbox.options[document.SearchAndSelect.selectedbox.options.selectedIndex] = null; } function empty() { document.SearchAndSelect.selectbox.options.length = 0; populate(); } |
Ik vermoed dat het met name in deze laatste event-scripts zit, maar ik kan niet vinden wat dan het probleem is.
Je kan de functionaliteit hier in werking zien: http://www.scholtobos.dds.nl/redactie/intellisearch.php
Er staan pas drie testitems in de lijst, maar je ziet snel genoeg dat het in IE niet werkt... Ik hoop dat jullie iets weten, in elk geval alvast bedankt voor de moeite!