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

JavaScript Discussion :

[AJAX] Plusieurs sources


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 116
    Points : 82
    Points
    82
    Par défaut [AJAX] Plusieurs sources
    Bonjour,

    J'ai quelques soucis pour l'affichage de données avec Ajax.
    Sur mon site j'ai plusieurs sources Ajax qui se réactualise régulièrement, mais à des moments une source se confond avec une autre et on as 2 fois les mêmes données mais à 2 endroits différents la ou il devrai pas être, et l'abscence des données qui devrai se trouver normalement à cette endroit...
    rien qu'au chargement de la page je doit mettre des setTimeout pour éviter qu'ils se chevauchent mais ca change rien par la suite.
    Avez vous une solution ?

    Merci

  2. #2
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    Salut

    Si tu peux nous montrer ton code, ce serait plus simple à débugguer

    Sinon es-tu sûr que ce sont bien les sources qui se confondent et non pas les destinations??

    tchaw

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 116
    Points : 82
    Points
    82
    Par défaut
    ce sont des destinations effectivement...
    le code va pas beaucoups t'aider je pensse car c'est le code de base de XMLHttpRequest

    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
    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
    88
    89
    90
    91
    92
     
    // **** Méthode AJAX *****
    function getXhr(){
      if(window.XMLHttpRequest) // Firefox et autres
    	xhr = new XMLHttpRequest(); 
    	  else if(window.ActiveXObject){ // Internet Explorer 
    	    try {
    		  xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e) {
    		  xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	  }
      else { // XMLHttpRequest non supporté par le navigateur 
    	alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest... Merci de mettre à jour Firefox, Opera ou eventuelement Internet Explorer'); 
    	xhr = false; 
      }
      return xhr; 
    }
     
    function maj(){
      setTimeout("ressource()", 1200);
      setTimeout("maj()", 290000);
    }
     
    // **** Charge le menu ****
    function menu(valeur){
     
      getXhr();
      // On défini ce qu'on va faire quand on aura la réponse
      xhr.onreadystatechange = function(){
        // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
        if(xhr.readyState == 4 && xhr.status == 200){
          document.getElementById('div_menu').innerHTML = xhr.responseText; 
        }       
      }
     
      xhr.open('POST','menu.php5',true);
      xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
      xhr.send(valeur);
    }
     
    // **** Charge la partie ressources à gauche ****
    function ressource(){
     
      getXhr();
      // On défini ce qu'on va faire quand on aura la réponse
      xhr.onreadystatechange = function(){
        // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
        if(xhr.readyState == 4 && xhr.status == 200){
          document.getElementById('div_ressources').innerHTML = xhr.responseText; 
        }       
      }
     
      xhr.open('POST','ressource.php5',true);
      xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
      xhr.send('page=true');
    }
     
    // **** Change page AJAX ****
    function dirige(lapage, valeurs, titre){
      if (titre)
        document.getElementById('titre_page').innerHTML = titre;
      getXhr();
      xhr.onreadystatechange = function(){
        if(xhr.readyState == 4 && xhr.status == 200){
          document.getElementById('jeu').innerHTML = xhr.responseText; 
        }       
      }
     
      xhr.open('POST','dirige.php5?p='+lapage,true);
      xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
      xhr.send(valeurs);
    }
     
    // **** Charge la partie des bâtiments à acheter ****
    function batiment(id_batiment){
     
      getXhr();
      // On défini ce qu'on va faire quand on aura la réponse
      xhr.onreadystatechange = function(){
        // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
        if(xhr.readyState == 4 && xhr.status == 200){
          document.getElementById('div_invisible').innerHTML = xhr.responseText; 
        }       
      }
     
      xhr.open('POST','dirige.php5?p=batiment',true);
      xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
      xhr.send('id_batiment=21&type=batiment&id_batiment_construct='+id_batiment);
     
      document.getElementById('div_invisible').style.visibility = 'visible';
    }

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    A lire ton code, j'ai peur que toutes tes fonctions utilisent la
    même instance de l'object XmlHttpRequest, essaie de modifier
    les lignes

    getXhr();

    par

    var xhr = getXhr();

    ainsi tu aurras une instance par fonction.

  5. #5
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par marcha
    Salut,

    A lire ton code, j'ai peur que toutes tes fonctions utilisent la
    même instance de l'object XmlHttpRequest, essaie de modifier
    les lignes

    getXhr();

    par

    var xhr = getXhr();

    ainsi tu aurras une instance par fonction.
    +1
    C'est à cause du tutoriel de siddh, il a pas prévu cela...
    Ca m'énerve, j'ai demandé des tonnnes de fois qu'on corrige et ca n'a jamais été fait... Je penses que siddh est en vacances, vu qu'il ne m'a pas encore répondu, mais ca commence à me lasser de voir toutes les semaines la même faute se répéter...

  6. #6
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 116
    Points : 82
    Points
    82
    Par défaut
    Vraiment désolé... au faite j'ai tenter de rechercher un peu mais je posais les mauvaises questions donc je ne trouvais pas...
    je ferai plus de rechercher la prochaine fois.

    Désolé

    Et merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] plusieurs listes liées
    Par highman dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/03/2007, 10h31
  2. plusieurs source pour un form
    Par polo(31) dans le forum Access
    Réponses: 6
    Dernier message: 28/06/2006, 09h55
  3. [AJAX] Plusieurs champs màj en fonction d'un seul...
    Par Davboc dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/02/2006, 11h41
  4. Réponses: 6
    Dernier message: 31/08/2005, 13h25
  5. Réponses: 2
    Dernier message: 24/05/2005, 16h35

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