AJAX script in PHP
Ik ben momenteel bezig AJAX te implementeren op de website, maar ik krijg het niet aan de praat. IE geeft een foutmelding van typen die niet overeenkomen, en Firefox geeft geen enkelen foutmelding.
de website in questie : http://beta.ro-underground.org
De Javascript in quest : http://beta.ro-underground.org/javascript/ajax.js
Ik heb al verschillende websites geraadpleegd, en geen enkelen kan mijn een deftig antwoord geven, ik hoop dat er iemand hier is die mij voort kan helpen.
Op die regel (namelijk: 30) gaat het mis. Probeer eens:
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
Als je var http = createAjaxObject(); net na de functie createAjaxObject(); aanmaakt. (dus buiten een functie om) is de inhoud vanuit alle functies beschikbaar.
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
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
function createAjaxObject() {
// Create an object to store the XML handler.
var XMLHttp = null;
try {
// Try IE7 object.
XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
// Try IE5.5 object.
XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
}
if( XMLHttp == null ) {
// Try Furry object.
try {
XMLHttp = new XMLHttpRequest();
} catch(e) {
alert('error');
}
}
return XMLHttp;
}
// Create the object.
var http = createAjaxObject();
function sendRequestPage(myPage,myParams) {
// Fetch the page
http.open('GET',myPage + '?' + myParams,true);
http.send("");
http.onreadystatechange = stateChanged;
}
function stateChanged() {
if ( http.readyState == 4 ) {
document.getElementById("content").innerHTML = http.responseText;
}
}
// Create an object to store the XML handler.
var XMLHttp = null;
try {
// Try IE7 object.
XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
// Try IE5.5 object.
XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
}
if( XMLHttp == null ) {
// Try Furry object.
try {
XMLHttp = new XMLHttpRequest();
} catch(e) {
alert('error');
}
}
return XMLHttp;
}
// Create the object.
var http = createAjaxObject();
function sendRequestPage(myPage,myParams) {
// Fetch the page
http.open('GET',myPage + '?' + myParams,true);
http.send("");
http.onreadystatechange = stateChanged;
}
function stateChanged() {
if ( http.readyState == 4 ) {
document.getElementById("content").innerHTML = http.responseText;
}
}
Volgens mij moet hij zo werken!
Enne, wat doet dat /*CSS document*/ bovenaan ;)
In Internet explorer gebeurt er niets dan, maar Firefox geeft de foutmelding dat in de function stateChanged de variabele http niet defenieerd is.
Inderdaad, Marien heeft gelijk. Je zal het http-object globaal moeten maken.
ok gewijzigd. Nu werkt ie fantastisch in furry zonder enige foutmelding maar in Internet Explorer doet niets meer... zelfs geen foutmeldingen of scripterros.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
function sendRequestPage(myPage,myParams) {
// Fetch the page
http.open('GET',myPage + '?' + myParams,true);
http.send("");
http.onreadystatechange = function ()
{
if (http.readyState == 4 ) {
document.getElementById("content").innerHTML = http.responseText;
}
};
}
// Fetch the page
http.open('GET',myPage + '?' + myParams,true);
http.send("");
http.onreadystatechange = function ()
{
if (http.readyState == 4 ) {
document.getElementById("content").innerHTML = http.responseText;
}
};
}
En werkt het zo?
Klopt het dat als je POST wilt gebruiken ipv get, dat je dan de Parameters niet meegeeft aan http.open maar ze in de http.send() doorstuurt ?
Ja dat klopt, maar daar heb ik zelf nog nooit mee gewerkt :) Ik werk eigenlijk alleen met GET omdat ik daarmee ook al voldoende resultaat kan krijgen.
in ieder geval iedereenbedankt voor snelle hulp.
*maakt bookmark van site*
Kijk, weer een tevreden klant erbij :D
maar IE die doet het niet meer nadat ik een nieuwe pagina en link heb toegevoegd...
snap niet wat er niet werkt, er wordt geen foutmelding weergegeven.
hmm nvm, het ligt aan de server denk ik die soms wat achter loopt.