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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
function envoyerRequeteParentb (code, url)
{
//appel de la fonction getRequeteHttp pour obtenir un objet XMLHttpRequest
var requeteHttp=getRequeteHttp();
//une fois objet obtenu, on teste la valeur de l'objet
if (code != 'aucun' && code != 'effacer' && code != 'new')
{
if (requeteHttp==null)
{
alert("Impossible d'utiliser Ajax sur ce navigateur");
}
else // si la valeur incite a continuer...
{
if(navigator.appName == 'Microsoft Internet Explorer')
{
requeteHttp.open('POST',url,true);//... on ouvre la requete en parametrant la methode d'envoi des données au serveur, l'url de la page appelée, le mode d'appel (synchrone=false ou asynchrone=true)
requeteHttp.onreadystatechange=function() {recevoirReponseparentb(requeteHttp);};//...on utilise une fonction dite de callback : on envoie la requete en indiquant le nom de la fonction a appeler lorsque le resultat sera arrivé ; cela permet de ne pas attendre le resultat pour continuer.(necessaire en asynchrone)
requeteHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');// syntaxe necessaire pour la methode post : il faut parametrer l'en-tete utilisé par la requete
requeteHttp.send('code ='+escape(code));//...enfin on envoie la requete
}
else
{
requeteHttp.open('POST',url,false);//... on ouvre la requete en parametrant la methode d'envoi des données au serveur, l'url de la page appelée, le mode d'appel (synchrone=false ou asynchrone=true)
requeteHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');// syntaxe necessaire pour la methode post : il faut parametrer l'en-tete utilisé par la requete
requeteHttp.send('code ='+ escape(code));//...enfin on envoie la requete
traiterReponseparentb(requeteHttp.responseText);//appel de la fonction traiter réponse
}
}
}
else
{
document.getElementById("nomr").value ='';
document.getElementById("prenomr").value ='';
document.getElementById("adresser").value ='';
document.getElementById("cpr").value ='';
document.getElementById("viller").value ='';
document.getElementById("fixer").value ='';
document.getElementById("portr").value ='';
}
return;
}
function recevoirReponseparentb(requeteHttp)
// lorsque envoyerRequete se termine, le navigateur n'est pas figé. Donc, quand l'evenement onreadystatechange se produit, ie quand la propriété readystate=etat d'avancement de l'objet requeteHttp change de valeur (0=non initialisé, 1=en cours de chargement, 2=chargé, 3=interaction en cours, 4=requete terminée) , alors la fonction recevoir Reponse est appelée
{
//Quand la requete est terminée...
if (requeteHttp.readyState==4)
{
// on regarde le statut du deroulement de la requete ; la valeur 200 correspond a un bon deroulement, 404 a une page non trouvée...
if (requeteHttp.status==200)
{
traiterReponseparentb(requeteHttp.responseText);//appel de la fonction traiter réponse
}
else
{
alert("Erreur "+requeteHttp.status+" : la requête ne s'est pas correctement exécutée.");
}
}
}
function traiterReponseparentb(reponse)
//fonction qui traite la reponse de la requete
{
var i,nb, temp;
var saisie=reponse.split('*');//les resultats de la requete sont concaténés et separés par des * il est donc necessaire de deconcatener grace a la fonction split; celle-ci retourne un tableau de sous chaine de caractères en utilisant comme séparateur le motif qui suit.
nb=saisie.length; // on connait ainsi la longueur du tableau
for (i=0; i<nb; i++)
{
elt=saisie[i].split('*');
document.getElementById("nomr").value=elt[1];
document.getElementById("prenomr").value=elt[2];
document.getElementById("adresser").value=elt[3];
document.getElementById("cpr").value=elt[4];
document.getElementById("viller").value=elt[5];
document.getElementById("fixer").value=elt[6];
document.getElementById("portr").value=elt[7];
}
} |
Partager