Voilà, j'ai essayé de faire de l'Ajax sans JQuery (je regrette mais bon ^^). Le problème que je rencontre c'est un problème au niveau du temps d'exécution du traitement.
Plus simplement, dans mon code, lorsque je mets une alert ça marche si je la retire, ça marche plus.
Voici le code JS :
// VARIABLE GLOBALE
var base_url = "http://localhost/";
var Xhr = null;
var Result = "";
function getXhr(){ // Verification de l'explorateur
if(window.XMLHttpRequest){
Xhr = new XMLHttpRequest(); // IE7 + Mozilla + GoogleChrome...
} else if(window.ActiveXObject) {
Xhr = new ActiveXObject("MSXML2.HTTP.3.0"); // IE6 et inf�rieur
}
}
function roundTrip(file,param){
getXhr();
Xhr.open("POST",file,true);
Xhr.send("tri="+param);
alert("fin GET"); // Alert permettant le retour (si abscente => retour vide)
return Xhr.responseText;
}
function select_tri(data){
alert(data);
Result = roundTrip(base_url+'outils/xxx_xxx.php',data);
alert(Result);
}
Pour le PHP :
<?php
echo $_POST["tri"];
?>
Voilà je suis preneur si vous avez une solution, ou des idées :).
Tu fais un return, donc arrête la fonction avant de faire l'alert
Essaye aussi de définir la fonction de traitement de la réponse avant d'envoyer la requête au serveur.
function roundTrip(file,param){
getXhr();
Xhr.open("POST",file,true);
Xhr.send("tri="+param);
Xhr.onreadystatechange = function(){
if(Xhr.readyState == 4){ //navigateur
if(Xhr.status == 200){ //serveur
return Xhr.responseText;
alert(Xhr.responseText);
} else {
switch(Xhr.status){
case 304 : "Champ 'if-modified-since' non modifie."; break;
case 403 : "Repertoire interdit."; break;
case 404 : "Page introuvable."; break;
case 500 : "Erreur de configuration"; break;
default : alert("Probleme Inconnu du Serveur"); break;
}
}
}
}
}
J'ai rajouté les éléments (merci pour ta page ;) ). Malheureusement, j'ai mon alert de Result est "undefined". Mon alert(Xhr.responseText); ne passe pas.
Effectivement en inversant le return et l'alert, j'ai bien le retour de ma page PHP. En revanche dans ma variable de retour "Result", ça me donne "undefined". Même chose si je remplace le "Result" par une alert. Or mon "Xhr.responseText" me donne bien ma valeur attendue :s.