AJAX Probleem (FF werkt, IE niet)
Ik ben met en script bezig waarbij hij iederen seconde controleerd of er een nieuwe gebruiker online komt. alleen heb ik ontdekt dat hij wel werkt in FF maar in IE niet? kan iemand misschien mij uitleggen / vertellen? hoe het komt? en hoe ik dit oplos?
Alvast bedankt
Nomis
dit is het stukje script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function online() {
htmlRequest2 = ajaxFunction();
if (htmlRequest2==null){ // If it cannot create a new Xmlhttp object.
alert ("Browser does not support HTTP Request");
return;
}
htmlRequest2.onreadystatechange = function qwerpogvmfsakf(){
if(htmlRequest2.readyState == 4){
document.getElementById("onlineusers").innerHTML = htmlRequest2.responseText;
}
}
htmlRequest2.open("GET", "onlineusers.php", true);
htmlRequest2.send(null);
}
online();
setInterval("online()",1000);
?>
function online() {
htmlRequest2 = ajaxFunction();
if (htmlRequest2==null){ // If it cannot create a new Xmlhttp object.
alert ("Browser does not support HTTP Request");
return;
}
htmlRequest2.onreadystatechange = function qwerpogvmfsakf(){
if(htmlRequest2.readyState == 4){
document.getElementById("onlineusers").innerHTML = htmlRequest2.responseText;
}
}
htmlRequest2.open("GET", "onlineusers.php", true);
htmlRequest2.send(null);
}
online();
setInterval("online()",1000);
?>
Licht denk ik aan het ajax script, post die ff.
Nomis schreef op 02.04.2009 16:47:
Beste phpers.
Ik ben met en script bezig waarbij hij iederen seconde controleerd of er een nieuwe gebruiker online komt. alleen heb ik ontdekt dat hij wel werkt in FF maar in IE niet? kan iemand misschien mij uitleggen / vertellen? hoe het komt? en hoe ik dit oplos?
Ik ben met en script bezig waarbij hij iederen seconde controleerd of er een nieuwe gebruiker online komt. alleen heb ik ontdekt dat hij wel werkt in FF maar in IE niet? kan iemand misschien mij uitleggen / vertellen? hoe het komt? en hoe ik dit oplos?
Hoi Nomis, ik heb een tijdje terug hier ook al iemand geholpen met 't zelfde probleem...
http://swf2.sq4.nl/new_ajax/new_ajax.php
hier staat een simpele ajax die zowel als FF als IE goed werkt.
Hou er rekening mee dat wanneer je elke seconde een update doet dat je logbestanden op de server groeien als kool.
Groetjes René
Gewijzigd op 01/01/1970 01:00:00 door Rene Sn
Ik ben nog bezig Ajax te leren, maar snap er nog niet veel van.
dit is stukje ajax staat boven aan of bedoel je die onlineuser.php?
René: Bedankt voor het voorbeeld, maar daar heb ik helaas niet zo veel aan. ik wil namelijk graag gaan werken met ajax, dus leren hoe het in elkaar zit en dan gewoon ander script werkt niet helemaal... ik heb dat stukje namelijk zelf geschreven, Als je daarmee zou kunnen uitleggen hoe je het hebt opgelost? dat zal erg fijn zijn.
Groetjes Nomis
Nomis schreef op 02.04.2009 20:58:
René: Bedankt voor het voorbeeld, maar daar heb ik helaas niet zo veel aan. ik wil namelijk graag gaan werken met ajax, dus leren hoe het in elkaar zit en dan gewoon ander script werkt niet helemaal... ik heb dat stukje namelijk zelf geschreven, Als je daarmee zou kunnen uitleggen hoe je het hebt opgelost? dat zal erg fijn zijn.
Groetjes Nomis
Groetjes Nomis
Nomis, Ik mis o.a. in jouw script de init. (zie hier onder regel 13 t/m 31) waardoor ik niet kan zien welke types van XMLHTTP`s je gebruikt.
Bestudeer de onderstaande nAjax.js maar eens. Denk dat je er dan wel uit komt.
nAjax.js
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
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
/* nAjax
/* Gebruik : var ajax1 = new new_Ajax();
/* ajax1.run("timer.php","id_naam");
/* timer.php = het uit te voeren programa
/* id_naam = het id van de <div id="naam"> of <span id="naam"> */
function nAjax() {
this.xmlhttp = null;
this.element="";
this.page="";
var self="";
this.initnAjax=function() {
try {
this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
try {
this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
this.xmlhttp = null;
}
}
if (! this.xmlhttp) {
if (typeof XMLHttpRequest != "undefined") {
this.xmlhttp = new XMLHttpRequest();
} else {
this.failed = true;
}
}
};
this.run=function (page,element) {
self = this;
if (this.xmlhttp) {
if (self.xmlhttp.readyState >= 1 && self.xmlhttp.readyState <= 3) { self.xmlhttp.abort();}
this.now = new Date();
this.xmlhttp.open("GET", page + "?t=" + this.now.getTime(), true);
this.xmlhttp.onreadystatechange = function () {
if(self.xmlhttp.readyState == 4){
document.getElementById(element).innerHTML = self.xmlhttp.responseText;
}
}
this.xmlhttp.send(null);
}
}
this.initnAjax();
}
/* Gebruik : var ajax1 = new new_Ajax();
/* ajax1.run("timer.php","id_naam");
/* timer.php = het uit te voeren programa
/* id_naam = het id van de <div id="naam"> of <span id="naam"> */
function nAjax() {
this.xmlhttp = null;
this.element="";
this.page="";
var self="";
this.initnAjax=function() {
try {
this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
try {
this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
this.xmlhttp = null;
}
}
if (! this.xmlhttp) {
if (typeof XMLHttpRequest != "undefined") {
this.xmlhttp = new XMLHttpRequest();
} else {
this.failed = true;
}
}
};
this.run=function (page,element) {
self = this;
if (this.xmlhttp) {
if (self.xmlhttp.readyState >= 1 && self.xmlhttp.readyState <= 3) { self.xmlhttp.abort();}
this.now = new Date();
this.xmlhttp.open("GET", page + "?t=" + this.now.getTime(), true);
this.xmlhttp.onreadystatechange = function () {
if(self.xmlhttp.readyState == 4){
document.getElementById(element).innerHTML = self.xmlhttp.responseText;
}
}
this.xmlhttp.send(null);
}
}
this.initnAjax();
}
Gewijzigd op 01/01/1970 01:00:00 door Rene Sn
Turmin schreef op 02.04.2009 20:22:
Rene: Mag ik vragen wat er in ajax_request1.php en ajax_request2.php staat en waar "date" en "seconden" dan vandaan komen (mogelijk uit die 2 bestanden)?
Ik ben nog bezig Ajax te leren, maar snap er nog niet veel van.
Ik ben nog bezig Ajax te leren, maar snap er nog niet veel van.
@Turmin: Hieronder de 2 php's waar je om vroeg.
AJAX is eigenlijk niets anders dan een XMLHTTP verbinding opbouwen een url opvragen en het resultaat kun je op 2 manieren verwerken:
1 blind (zoals ik doe) in een innerHTML van bijv. <div id="conten"><div> plaatsen.
2 Je kunt de results ook verwerken via XML dit vergt wel kennis,van XML & JavaScript waardoor je de data in variabelen kunt zetten voor javaScript.
ajax_request1.php
ajax_request2.php
Grts René
Gewijzigd op 01/01/1970 01:00:00 door Rene Sn