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] Utilisation Ajax et IE


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut [AJAX] Utilisation Ajax et IE
    Bonjour tout le monde ! je débute en Ajax, et la ...c'est la galère qui commence . En guise d'échauffement j'ai voulu faire une petite page qui affiche permet de faire defiler des images dans un petit <div>.

    Ca fonctionne impeccable sous firefox, du premier coup d'ailleurs. Puis sous IE rien du tout. La première image s'affiche, et rien ne se passe quand on appuie sur un des boutons.

    Si quelqu'un a une idée, merci de partager

    index.htm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <html>
    <head>
    <script src="javascript.js">
    </script>
    </head>
    <body onload="actionPage('init');">
    <div class=image id=img style="width:450px;height:450px;border:1px solid;"></div>
    <input type=button value="<--" onClick="actionPage('precedente');">
    <input type=button value="-->" onClick="actionPage('suivante');">
    <a href=# onClick="alert(blabla);">blabla</a>
    </body> 
    </html>
    javascript.js
    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
     
    if (window.XMLHttpRequest) {
      XMLHttpRequestObject = new XMLHttpRequest();
    } else {
      XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }
     
    function actionPage(action) {
      if (XMLHttpRequestObject) { 
        XMLHttpRequestObject.onreadystatechange = function() 
      { 
        if (XMLHttpRequestObject.readyState == 1) {
          el = document.getElementById("img"); 
          el.innerHTML = "<b>Chargement en cours</b>";    
        } else if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
          el = document.getElementById("img"); 
          el.innerHTML = XMLHttpRequestObject.responseText; 
        } 
      } 
      XMLHttpRequestObject.open("GET", "indexphp.php?action="+action, true); 
      XMLHttpRequestObject.send(null);
      }
    }
    indexphp.php
    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
     
    <?
      session_start();
     
      function afficheImageInit() {
        $rep1="./images";
        $rep2=opendir($rep1);       
        $i=0;
        while ($file = readdir($rep2)) {
          if (($file!=".")&&($file!="..")) {
            $_SESSION['init'][$i]=$file;
            $i++;
          }
        }
        closedir($rep2);
        $_SESSION['max']=$i-1;
        $_SESSION['position']=0;
      }
     
      switch($_GET['action']) {
        case "init":
          afficheImageInit();
          break;
        case "precedente":
          if($_SESSION['position']>0) {
            $_SESSION['position']--;
          } else {
            $_SESSION['position']=$_SESSION['max'];        
          }
          break;
        case "suivante":
          if($_SESSION['position']<$_SESSION['max']) {  
            $_SESSION['position']++;
          } else {
            $_SESSION['position']=0;
          }    
          break; 
      }
      $position=$_SESSION['position'];
      echo "<img src=images/".$_SESSION['init'][$position].">";
    ?>

  2. #2
    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
    Par défaut
    Simplissime...
    Tu ne peux utiliser un Object XmlHttpRequest qu'une SEULE FOIS...
    Ca m'étone même que ca marche sur FF...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut
    il faudrait donc que le code JS devienne

    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
     
     
    function actionPage(action) {
      if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
      } else {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
      }
      if (XMLHttpRequestObject) { 
        XMLHttpRequestObject.onreadystatechange = function() 
      { 
        if (XMLHttpRequestObject.readyState == 1) {
          el = document.getElementById("img"); 
          el.innerHTML = "<b>Chargement en cours</b>";    
        } else if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
          el = document.getElementById("img"); 
          el.innerHTML = XMLHttpRequestObject.responseText; 
        } 
      } 
      XMLHttpRequestObject.open("GET", "indexphp.php?action="+action, true); 
      XMLHttpRequestObject.send(null);
      }
    }
    afin de reinitialiser le XMLHTTPObject a chaque clic ?

    [EDIT]
    Problème réglé merci pour le coup de main, ça fonctionne de suite beaucoup mieux

  4. #4
    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
    Par défaut
    De rien !
    Bonne continuation.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/06/2012, 12h22
  2. [AJAX] Utilisation ajax
    Par Benjiijneb dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/04/2006, 18h48
  3. [AJAX] Comment utiliser AJAX
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 06/04/2006, 15h16
  4. [AJAX] Utilisation AJAX
    Par topolino dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/02/2006, 09h30
  5. [AJAX] Utilisation AJAX
    Par illegalsene dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/01/2006, 11h55

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