getElementById(var) werkt niet? - AJAX
Even een vraagje over het volgende AJAX script.
Ik probeerde een functie te maken waarmee je een waarde en een plaats meegeeft waarin de uitvoer van de functie showHints komt.
De eerste
werkt.
De tweede echter wordt niet uitgevoerd.
Ik heb dit script uitgetest, zonder de variabele plaats en dan een id van een div opgegeven.
Dan doet dit script het wel, een beetje gek.
Ik wil echter een algemene functie maken waarmee ik niet gebonden ben aan 1 div naam, vandaar de var plaats.
Heb ook gegoogled, meerdere mensen hebben dit probleem, ik heb echter nergens een werkende oplossing gezien, vandaar
dat jullie misschien kunnen helpen?
Code (php)
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
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
<script type="text/javascript">
function showHints(zoekterm,plaats)
{
if(zoekterm.length == 0)
{
document.getElementedById(plaats).innerHTML = "";
return;
}
xmlHttp = GetXmlHttpObject();
if(xmlHttp == null)
{
window.alert("Sorry, maar u kunt geen AJAX-functies gebruiken");
return;
}
else
{
var url = "zoeknaam.php";
url = url + "?zoekterm=" + zoekterm;
url = url + "&rand=" + Math.random();
xmlHttp.onreadystatechange = stateChanged(plaats);
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
}
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)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(!xmlHttp)
{
alert("Sommige functies zijn niet beschikbaar");
}
return xmlHttp;
}
function stateChanged(plaats)
{
alert("Plaats is: " + plaats);
if (xmlHttp.readyState == 4)
{
alert("Plaats is: " + plaats);
document.getElementById(plaats).innerHTML=xmlHttp.responseText;
}
}
</script>
function showHints(zoekterm,plaats)
{
if(zoekterm.length == 0)
{
document.getElementedById(plaats).innerHTML = "";
return;
}
xmlHttp = GetXmlHttpObject();
if(xmlHttp == null)
{
window.alert("Sorry, maar u kunt geen AJAX-functies gebruiken");
return;
}
else
{
var url = "zoeknaam.php";
url = url + "?zoekterm=" + zoekterm;
url = url + "&rand=" + Math.random();
xmlHttp.onreadystatechange = stateChanged(plaats);
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
}
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)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(!xmlHttp)
{
alert("Sommige functies zijn niet beschikbaar");
}
return xmlHttp;
}
function stateChanged(plaats)
{
alert("Plaats is: " + plaats);
if (xmlHttp.readyState == 4)
{
alert("Plaats is: " + plaats);
document.getElementById(plaats).innerHTML=xmlHttp.responseText;
}
}
</script>
Bij voorbaat bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Dennis
Nu wordt stateChanged direct uitgevoerd, en wordt het resultaat van die functie aan onreadystatechange toegewezen. Wat jij zoekt is
Ja super bedankt!