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
|
// ---------------------------------------------------------
// --- FONCTION APPEL AJAX STANDARD ---
// ---------------------------------------------------------
// >>> réalise un appel ajax standard à partir des paramètres donnés :
// PARAM #1 : ( chaine ) URL de l'appel (chemin relatif à appeler par ajax, exemple : "./repertoire/page.php" )
// PARAM #2 ( chaine ) ( optionnelle ) : les paramètres au format "paramètres de requête" ( exemple : param1="bonjour"¶m2="99548652"¶m3="false" )
// PARAM #3 : ( fonction anonyme ) ( optionnelle ) pour le traitement du retour, avec deux arguments, par exemple : function(succes, retour) { if ( succes ) alert(retour); }
// RETOUR : ( booléen ) informant sur le succès/échec de l'appel
function appel_ajax_standard(url, params, onSuccess)
{
var ms = new Date().getTime();
params = (params)?(params + '&ms=' + ms):('ms=' + ms);
try
{
var xhr = getXhr();
xhr.onreadystatechange = function()
{
if (onSuccess && xhr.readyState == 4)
{
if (xhr.status == 200)
{
onSuccess(true, xhr.responseText);
}
else
{
onSuccess(false, "Erreur : Le serveur ne répond pas.");
}
}
}
xhr.open("GET", (url + "?" + params), true);
xhr.send(null);
return true;
}
catch (e)
{
return false;
}
} // merci à Bovino et marcha ;-)
// exemple d'appel :
var monElement = document.getElementById(idElement);
var monUrl = "./repertoire/page.php";
var resultat_ajax = appel_ajax_standard(monUrl, "superParam=chouetteValeur", function(succes, retour) {
if (succes) monElement.appendChild(document.createTextNode(retour));
else alert(retour);
});
if (!resultat_ajax) { alert("Une défaillance ajax a empêché ce traitement de s'effectuer. Veuillez contacter votre ragondin d'appartement."); } |
Partager