Vieux 16/01/2014, 19h54   #1
Mmo-Trick's Addict
 
Avatar de mars073
 
Date d'inscription: December 2009
Localisation: à droite ou l'autre droite je sais pu :(
Messages: 522
Mercis: 8
Remercié 31 Fois dans 21 Messages
Salut all,
Je me suis enfin motivé à faire une intro sur l'ajax et son utilisation simplifié avec JQuery.

Comme le veut la tradition du manque d'humour avec l'ajax:

Donc pour ceux qui ne savent pas ce qu'est l'ajax, en gros c'est à la place de faire recharger votre site pour quelques données vous faites une requêtes en arrière plan, c'est utile dans les shoutboxs ou pour faire certain effet sur les sites (par exemple).

L'ajax c'est du javascript rien à foutre de ce que vous dites et NON sont utilisation par JQuery ne fait pas de vous un "dev" en ajax...

Comme je l'ai dis au dessus c'est l’exécution d'une requête en arrière-plan donc il faut l'initialiser > configurer la requête > l'envoyer (> récupérer réponse)

Initialisation:
Code:
var request;
if (window.XMLHttpRequest) {
	request = new XMLHttpRequest();
} else if (window.ActiveXObject)  { // Un petit test pour IE car ils savent pas faire comme les autres...
	request = new ActiveXObject("Microsoft.XMLHTTP");
} else {
	alert("Votre système d'exploitation internet ne semble pas supporter l'ajax..");
}
Envoyer une simple requête (comme si vous alliez sur la page):
Code:
request.open("GET", "fichier.php", true);

request.send(null);
donc vous avez dans ce cas 2 fonctions .open() et .send():
-open(): vous "ouvrez" une requête enfin de lui expliquer comment elle doit s’exécuter en 3 paramètres:
-- "GET" : type d'envoie de la requête
-- "fichier.php" : le fichier/page sur le quel il va être exécute
-- true : mode asynchrone

-send(): envoie de la requête dans ce cas présent il y a null car il n'y a aucun envoie de donnée


maintenant un envoie un peut plus complexe, on va faire un système d'inscription à un newsletter par requête post ._.
code html (compliqué *tousse*):
Code:
<input id="mail" type="email">
<input id="send" type="button" onClick="inscription();">
El js (ajax):
Code:
function inscription() {
	var mail = document.getElementById("mail").value;
	request.open("POST", "fichier.php", true)
	request.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
	request.send("?mail=" + mail)
	http.onreadystatechange = function() {
		if (request.readyState == 4 && request.status == 200) {
			alert(request.responseText);
		}
	}
}
Dans cet exemple j'ai fais une fonction du nom d'inscription, le fichier "fichier.php" dit si l'inscription a été validé ou non,
-open(): cette fois-ci ce n'est pas une requête GET mais POST donc je récupére les données en php avec $_POST[];
-setRequestHeader(): fonction optionnel pour préciser des paramètres dans l'entête de la requête
-send(): je mets en forme la variable que j'ai récupéré du nom de mail, les variables doivent être mit selon la norme RFC-1738 exemple : ?variable=123&var2=Bonjour&page=recherche&patati=p atata
-onreadystatechange : c'est l'eventement qui est généré lors de l'envoie des différents étapes de l'envoie
-readyState et status : je test le stade de la requête pour voir si elle est valide::
--readyState:
--- 0 : requête non initialisé
--- 1 : connexion au serveur établie
--- 2 : requête envoyée
--- 3 : traitement de la requête
--- 4 : réponse reçu
--status:
--- 200: "Ok"... je sais pas comment expliquer xD
--- 404: page non trouvée
-responseText : retourne la reponse de la requête sous forme de texte brut

et la version simplifiée (en JQuery):
vous avez 3 possibilité qui reviennent presque au même : $.ajax, $.get et $.post, j'ai expliqué la différence au dessus (le $.ajax et similaire au $.get).

La syntaxe pour un simple envoie avec $.ajax:
Code:
$.ajax({url:"fichier.php"});
La syntaxe pour un simple envoie avec $.get et un petit message à la fin de l'envoie:
Code:
$.get("fichier.php", function() {
	alert("requête envoyée");
});
La syntaxe pour envoie avec variables avec $.post et recupération des données (fonctionnel avec $.get sans les variables entre {}):
Code:
 $.post("fichier.php", {
	page : "mmotrick",
	methode : "ajax",
	version : 3
}, function(data, statut){
	alert("Réponse requête: " + statut + "# " + data);
});
...
__________________


Dernière modification par mars073 ; 01/02/2014 à 17h33. Motif: ajout de la 2éme partie avec le jquery
mars073 est déconnecté   Réponse avec citation
Ce Membre a remercié mars073 pour son Message Utile:
Réponse

Tags
ajax, introduction, jquery
Outils de la discussion
Modes d'affichage


Nous contacter - Cheat wow - Archives - Haut de page