IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] multiple requete XMLHttpRequest


Sujet :

AJAX

  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Points : 123
    Points
    123
    Par défaut [AJAX] multiple requete XMLHttpRequest
    Bonjour, j'ai un problème, mais je vais d'abord vous décrire ce que je voudrais faire :

    J'ai 3 div que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id='idDiv0'></div>
    <div id='idDiv1'></div>
    <div id='idDiv2'></div>
    Puis par une fonction javascript (que j'ai nommé afficherFichier(), je voudrais afficher des données d'un fichier externe (ce fichier externe s'appelle fichier.php) par Ajax dans les 3 div en méme temps, mais je n'arrive pas à le faire.

    Voici le code complet avec la fonction en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <html>
    <head>
    </head>
    <body>
     
    <div id='idDiv0'></div>
    <div id='idDiv1'></div>
    <div id='idDiv2'></div>
     
    <script language='javascript'>
     
    function afficherFichier()  //On créer la fonction afficherFichier()
    {   
        /*On met les div sous forme d'objet, et comme il y a 3 div, alors on crée 3 objets de div au moyen d'une boucle for:*/
        for(n=0;n<=2;n++)
        {   
            objDiv=new Array(); 
            objDiv[n]=document.getElementById("idDiv"+n);
     
            /*Une fois qu'on a mis les div en objet, on va faire appel à un fichier externe nommé fichier.php par ajax, puis on va afficher les données de ce fichier externe dans chacun des 3 div au moyen de innerHTML:*/
            /*Et comme il y a 3 div, alors il y aura 3 appels (ou requete XMLHttpRequest) simmultanés du fichier externe, donc on crée 3 objets XMLHttpRequest grace à un Array:*/
            objXMLHttpRequest=new Array();
            objXMLHttpRequest[n]=new XMLHttpRequest();
            objXMLHttpRequest[n].onreadystatechange=function()
            {   
               if(objXMLHttpRequest[n].readyState==4 && objXMLHttpRequest[n].status==200)
               {   
                   /*On récupère les données du fichiers externe appelé:*/
                   donnees=new Array();
                   donnees[n]=objXMLHttpRequest[n].responseText;  
                   /*alert(donnees[n]);*/
     
                   /*Enfin on affiche les données de ce fichier externe dans les 3 div simultanément par innerHTML:*/
                   objMatrice[n].innerHTML=donnees[n];             
               }
            }
     
            objXMLHttpRequest[n].open('GET',fichier.php,true);
            objXMLHttpRequest[n].send(null);  
     
        }
     
    }
     
    afficherFichier();   //Maintenant on exécute la fonction afficherFichier();
     
    </script>
     
    </body>
    </html>
    Mais ça ne marche pas, est-ce qu'un sait comment il faut faire ?

    PS : je pense que le problème vient au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    objXMLHttpRequest[n].onreadystatechange=function()
    {  
        ....
    }
    car si on met une alert(n); entre ses 2 accolades pour suivre la valeur de n,
    et bien je n'ai qu"une seule alerte, et en plus cette alerte m'affiche 3,
    alors que j'aurais du avoir 3 alertes successives dont la 1ère alerte devrait m'afficher 0,
    la seconde alerte devrait m'afficher 1, et la 3ème et dernière alerte devrait m'afficher 2,
    car le n dans la boucle for de la fonction afficherFichier() va de 0 à 2.

    Merci d'avance pour votre aide, bien à vous.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par totoAussi Voir le message
    je voudrais afficher des données d'un fichier externe (ce fichier externe s'appelle fichier.php) par Ajax dans les 3 div en méme temps
    s'agissant du même fichier, je ne comprends pas pourquoi tu fais 3 appels Ajax ?

    Tu n'as qu'à récupérer ton fichier puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    document.getElementById("idDiv0").innerHTML = objXhr.responseText;
    document.getElementById("idDiv1").innerHTML = objXhr.responseText;
    document.getElementById("idDiv2").innerHTML = objXhr.responseText;
    Ou y a quelque chose que j'ai loupé ?

    A+

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    for(n=0;n<=2;n++)
    {
    objDiv=new Array();
    objDiv[n]=document.getElementById("idDiv"+n);
    Tu dois déclarer objDiv avant la boucle.

    objDiv[n]=document.getElementById("idDiv"+n);
    ....
    objMatrice[n].innerHTML=donnees[n];

  4. #4
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Points : 123
    Points
    123
    Par défaut
    Merci mes amis vos Deux réponses sont pertinentes

    Bien à vous deux.

Discussions similaires

  1. [AJAX] ajax et multiples requetes
    Par guiguiz dans le forum jQuery
    Réponses: 5
    Dernier message: 10/01/2013, 01h43
  2. [AJAX] Multiples requetes xmlhttp
    Par kevinfer dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/12/2008, 02h02
  3. [AJAX] Requete xmlhttprequest
    Par destin1934 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 26/03/2008, 19h51
  4. [AJAX] multiples objets XMLHttpRequest
    Par fabrice91 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/06/2007, 15h20
  5. [AJAX] Permission refusée XMLHttprequest
    Par allserv dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 23/04/2007, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo