AJAX&JQuery
AJAX&JQuery
Généralités
• Définition :
AJAX = Asynchronous JavaScript And XML
permet de faire appels asynchrones au serveur depuis le client
Serveur retourne du XML récupéré par JavaScript et traité
url endroit où trouver les données (fichier avec son chemin sur
disque)
boolean true (asynchrone) / false (synchrone)
200 ok
7
AJAX
Construction d’une requête
• Création d’une instance de XHR :
2 options pour compatibilité avec les navigateurs:
if (window.XMLHttpRequest) // Objet standard
{
xhr = new XMLHttpRequest(); // les autres navigateurs
}
else if (window.ActiveXObject) // Internet Explorer
{
xhr = new ActiveXObject ("Microsoft.XMLHTTP");
}
N.B.: à partir de la version IE7 l’objet XMLHttpResquest est disponible
on peut utiliser Msxml2.XMLHTTP à la place de
Micrososft.XMLHTTP
xhr.ResponseText
Réponse du serveur sous forme de fichier XML
On récupère les données par variable à laquelle on affecte
xhr.ResponseXML
S’assurer que le XML retourné est "bien formé"
les données envoyées sont prise dans le champ dont l’id est
"TEXTE" et qui est rempli par l’utilisateur grâce au formulaire
ASSALE Adjé Louis AJAX & JQuery 13
AJAX
Exemples de programmes
• Exemple 1 :
Listes liées : Auteurs et Livres
La liste Auteurs affiche les auteurs au choix d’un auteur
La liste Livres affiche les livres de cet auteur
On créera 2 fichiers :
1 fichier auteurs.php qui contiendra le code d’affichage du formulaire
$("div#contenu").css("color", "red");
29
JQUERY
Les sélecteurs JQuery
• Exemples
<html>
<head>
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
<title>Exemple avec JQuery : coloriage</title>
<script type="text/javascript" src="jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="jq-colorier.js"></script>
</head>
<body>
<h1>Exemple avec jQuery : coloriage</h1>
<hr/>
<div id="contenu">Ce texte doit s'afficher en couleur !</div>
<hr/>
ASSALE Adjé Louis AJAX & JQuery 51
JQUERY
Exemples
• Exemple 1 :
Le code en 2 fichiers : colorier.html fichier html du programme
<form action="">
code de couleur : <input type="text" name="zcouleur"
id="zcouleur" value"#FF0000" size="7" />
<input type="button" value="colorier" id="bouton" />
</form>
</body>
</html>
Appels :
$.get(adresse, données, gérant), $.post(adresse, données, gérant)
function charger(adresse) {
// chargement du texte issu de adresse dans l'element #contenu
// avec des messages dans l'element #resultat
$('#resultat').html('<p>Chargement de <strong>' + adresse
+ '</strong></p>’);
$.get(adresse, null, resultatAjax);
}