Réponse acceptée !
Merci nicomilville !
Voici à ce propose des bouts de codes que j'ai trouvé et qui aideront tous ceux qui, comme moi, ont besoin de pouvoir lancer des scripts (avec ou sans données en retour) SANS DÉCHARGER la PAGE COURANTE : TRÈS PRATIQUE !!!! :
Partie Javascript (dans cet exemple on envoie deux données : 2 chaines stockées dans 2 INPUT de type TEXTE) :
--------------------------------------------------------------------------------------------------------------------
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
var method = f.elements["method"][0].checked ? "GET" : "POST";
var filename = "strings2.php";
var s1 = f.elements["string1"].value;
var s2 = f.elements["string2"].value;
var data = null;
if(s1 != "" && s2 != "")
data = "s1="+s1+"&s2="+s2;
if(method == "GET" && data != null) {
filename += "?"+data;
data = null;
}
xhr_object.open(method, filename, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
var tmp = xhr_object.responseText.split(":");
if(typeof(tmp[1]) != "undefined") {
f.elements["string1_r"].value = tmp[1];
f.elements["string2_r"].value = tmp[2];
}
alert(tmp[0]);
}
}
if(method == "POST")
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr_object.send(data);
Partie PHP (dans cet exemple cela renvoie les 2 chaines mais inversées) :
--------------------------------------------------------------------------------------------------------------------
header('Content-type: text/html; charset=iso-8859-1');
if(count($_POST) > 0) {
echo "Données reçues en POST:";
foreach($_POST as $v)
echo strrev(utf8_decode($v)).":";
}
elseif(count($_GET) > 0) {
echo "Données reçues en GET:";
foreach($_GET as $v)
echo strrev($v).":";
}
if(count($_POST) == 0 && count($_GET) == 0)
echo 'Aucune donnée n\'a été reçue par "'.basename($_SERVER["PHP_SELF"]).'"...'; Conclusion :
------------
Vous pourrez simplifier encore ce code en virant toute la partie GET : il faut mieux utiliser POST, c'est plus propre.
On peut lancer des traitements avec ou sans retour, sans décharger la page courante avec XMLHttpRequest.
Voili, voulou !


BlueMan
