Aller directement au contenu
  • Catégories
  • Récent
  • Mots-clés
  • Populaire
  • Web
  • Utilisateurs
  • Groupes
Habillages
  • Clair
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Sombre
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Défaut (Aucun habillage)
  • Aucun habillage
Réduire
Melinyel

Melinyel

  1. Accueil
  2. Programmation
  3. Développement web
  4. Javascript
  5. [AJAX] Introduction (+JQuery)

[AJAX] Introduction (+JQuery)

Planifié Épinglé Verrouillé Déplacé Javascript
4 Messages 3 Publieurs 2.7k Vues
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • mars073M Hors-ligne
    mars073M Hors-ligne
    mars073
    a écrit sur dernière édition par
    #1

    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:

    ![2005.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://www.colgate.fr/PDP/Ajax/FR/About/Story/images/2005.png)

    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 son 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:

    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):

    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*):

    <input id="mail" type="email">
    <input id="send" type="button" onClick="inscription();">
    

    El js (ajax):

    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);
    request.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:

    $.ajax({url:"fichier.php"});
    

    La syntaxe pour un simple envoie avec $.get et un petit message à la fin de l'envoie:

    $.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 {}):

    $.post("fichier.php", {
    page : "mmotrick",
    methode : "ajax",
    version : 3
    }, function(data, statut){
    alert("Réponse requête: " + statut + "# " + data);
    });
    

    ...

    votes-45296e7.png

    Aide à l'apprentissage et la réalisation pour des graphismes, des programmes, des sites ou autres.
    signature.png
    Signature aléatoire, proposez vous aussi une signature ici!

    1 réponse Dernière réponse
    3
    • S Hors-ligne
      S Hors-ligne
      Soon
      a écrit sur dernière édition par
      #2

      Ajax professional :lol:

      Le tutoriel est fini ?

      1 réponse Dernière réponse
      0
      • mars073M Hors-ligne
        mars073M Hors-ligne
        mars073
        a écrit sur dernière édition par
        #3

        Le tutoriel est fini ?

        je voulais ajouter encore un truc à la fin mais je sais plu quoi x'D

        votes-45296e7.png

        Aide à l'apprentissage et la réalisation pour des graphismes, des programmes, des sites ou autres.
        signature.png
        Signature aléatoire, proposez vous aussi une signature ici!

        1 réponse Dernière réponse
        0
        • AzadA Hors-ligne
          AzadA Hors-ligne
          Azad
          a écrit sur dernière édition par
          #4

          Très bon guide, merci de l'avoir fait pour Melinyel. 🙂

          +1 Rep.

          Administrateur du forum.

          Contactez-moi par message privé ou par mail.

          1 réponse Dernière réponse
          0

          Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.

          Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.

          Grâce à votre participation, ce message peut devenir encore meilleur 💗

          S'inscrire Se connecter
          Répondre
          • Répondre à l'aide d'un nouveau sujet
          Se connecter pour répondre
          • Du plus ancien au plus récent
          • Du plus récent au plus ancien
          • Les plus votés


          • Se connecter

          • Connectez-vous ou inscrivez-vous pour faire une recherche.
          Powered by NodeBB Contributors
          • Premier message
            Dernier message
          0
          • Catégories
          • Récent
          • Mots-clés
          • Populaire
          • Web
          • Utilisateurs
          • Groupes