Ik ben bezig met een site waar ik gebruik wil maken van Ajax icm PHP.
Er is een pagina dat bestaat uit een tabel met radiobuttons, die elke een event triggeren die iets invoert in de database (MySQL).
Het probleem is dat het maar 1x lukt, daarna wordt er niks meer toegevoegd, tenzij de cache van IE wordt leeggemaakt. Daarna lukt het weer wel om 1x iets toe te voegen.
Volgens mij zit het probleem in het feit dat de status na de eerste keer op 4 blijft hangen (4 = complete) en het daarna niet meer mogelijk is om nog iets toe te voegen.
Ik zat te denken om de XMLHttpRequest weg te gooien bij readyState == 4, maar dit kan blijkbaar niet (is mij niet gelukt in ieder geval). Ik heb het internet afgezocht, maar heb helaas geen oplossing gevonden.
In sendDataAccountCostCat.php staat niet veel, alleen een simpele db insert om het te testen.
Volgens mij kan mijn probleem opgelost worden door de XMLHttpRequest te verwijderen na gebruik (correct me if I'm wrong), maar dit is mij dus niet gelukt.
Ik hoop dat ik het probleem duidelijk genoeg heb gemaakt en dat iemand mij op weg kan helpen
btw. Ik ben pas sinds gisteren bezig met Ajax.
Er is een pagina dat bestaat uit een tabel met radiobuttons, die elke een event triggeren die iets invoert in de database (MySQL).
Het probleem is dat het maar 1x lukt, daarna wordt er niks meer toegevoegd, tenzij de cache van IE wordt leeggemaakt. Daarna lukt het weer wel om 1x iets toe te voegen.
Volgens mij zit het probleem in het feit dat de status na de eerste keer op 4 blijft hangen (4 = complete) en het daarna niet meer mogelijk is om nog iets toe te voegen.
Ik zat te denken om de XMLHttpRequest weg te gooien bij readyState == 4, maar dit kan blijkbaar niet (is mij niet gelukt in ieder geval). Ik heb het internet afgezocht, maar heb helaas geen oplossing gevonden.
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
| var http; function createRequestObject() { var request_; var browser = navigator.appName; if(browser == "Microsoft Internet Explorer") { request_ = new ActiveXObject("Microsoft.XMLHTTP"); } else { request_ = new XMLHttpRequest(); } return request_; } function sendInfo() { http = createRequestObject(); http.open('get', 'sendDataAccountCostCat.php'); http.onreadystatechange = handleInfo; http.send(null); } function handleInfo() { if(http.readyState == 1) { } if(http.readyState == 4) { //http.onreadystatechange = null; // Dit kan dus niet } } |
In sendDataAccountCostCat.php staat niet veel, alleen een simpele db insert om het te testen.
PHP:
1
2
3
| $db = new Db(); $query = "INSERT INTO `tabel` (`a1`, `a2`, `a3`) VALUES (4051, 8, 1)"; $result = $db->runQuery($query); |
Volgens mij kan mijn probleem opgelost worden door de XMLHttpRequest te verwijderen na gebruik (correct me if I'm wrong), maar dit is mij dus niet gelukt.
Ik hoop dat ik het probleem duidelijk genoeg heb gemaakt en dat iemand mij op weg kan helpen
btw. Ik ben pas sinds gisteren bezig met Ajax.