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] Ajax quand tu nous tiens


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 72
    Points : 58
    Points
    58
    Par défaut [AJAX] Ajax quand tu nous tiens
    Rebonjour toujours à propos d'ajax. J'ai un big soucis donc je vous explique pour éventuellement avoir les conseils d'un génie d'AJAX.

    J'utilise ajax pour obtenir une execution fluide, la tache s'effectuait auparavant avec 4 pages. La tache consiste à donner un avis sur un produit en cliquant sur un lien se situant juste en dessous.

    Le prob ce situe après une première execution, et sous IE. Afin la fin de mon execution en Ajax, je termine en affichant uniquement une message comme quoi l'execution s'est bien passée. Ensuite on peut consulder des autres pages (page contenant des produits), et si on y retourne sur le lien pour redérouler l'exec AJAX:
    - Sous firefox pas de soucis l'exec se déroule correctement
    - par contre sous IE, l'exec ne se produit pas car il y a une erreur au niveau de la ligne content.innerHTML, IE n'arrive plus à executer cette ligne.


    Je voudrais savoir comment résoudre ce problème, et par la même occassion comprendre pourquoi cela se produit. Voici le code de ma fonction AJAX et la ligne qui pose problème est signalée en gras.

    Merci pour votre aide


    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
    /**
    * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
    */
    function sendData(data, page, method)
    {
        if(document.all)
        {
            //Internet Explorer
            var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
        }//fin if
        else
        {
            //Mozilla
    
            var XhrObj = new XMLHttpRequest();
        }//fin else
    
        //définition de l'endroit d'affichage:
        var content = document.getElementById("zone_avis");
    
        //si on envoie par la méthode GET:
        if(method == "GET")
        {
            if(data == 'null')
            {
                //Ouverture du fichier sélectionné:
                XhrObj.open("GET", page, true);
            }//fin if
            else
            {
                //Ouverture du fichier en methode GET
                XhrObj.open("GET", page+"?"+data, true);
            }//fin else
        }//fin if
        else if(method == "POST")
        {
            //Ouverture du fichier en methode POST
            XhrObj.open("POST", page);
        }//fin elseif
    
        //Ok pour la page cible
        XhrObj.onreadystatechange = function()
        {
            if (XhrObj.readyState == 4 && XhrObj.status == 200)
                content.innerHTML = XhrObj.responseText ;
        }    
    
        if(method == "GET")
        {
            XhrObj.send(null);
        }//fin if
        else if(method == "POST")
        {
            XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            XhrObj.send(data);
        }//fin elseif
    }//fin fonction SendData
    
    </script>

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut, essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        XhrObj.onreadystatechange = function()
        {
            if (XhrObj.readyState == 4 && XhrObj.status == 200)
                document.getElementById("zone_avis").innerHTML = XhrObj.responseText ;
        }
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 72
    Points : 58
    Points
    58
    Par défaut Pas d'amélioration
    Merci du conseil mais cela n'a pas eu d'effet une fois la permière execution effectuée tjs sous IE cela ne fonctionne tjs pas, tjs le même problème il ne pas cette fameuse ligne sous IE

  4. #4
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut
    Bsr

    Normalement si tu as modifié le code comme indiqué par Swoög ca doit fonctionner

    Vérifie dans ta page en erreur sous IE en affichant le code source que tu as bien :

    document.getElementById("zone_avis").innerHTML = XhrObj.responseText ;

    SI ce n'est pas le cas vide le cache de ton navigateur

    De plus modifie le code de ta fct sendData()

    Remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            //Ouverture du fichier en methode POST
            XhrObj.open("POST", page);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            //Ouverture du fichier en methode POST
            XhrObj.open("POST", page,true);
    autrement tu n'exécuteras pas la requête en mode asynchrone si tu utilises la méthode POST !
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Points : 159
    Points
    159
    Par défaut
    J'ai exactement le même problème et cela n'est pas résolu !

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Points : 159
    Points
    159
    Par défaut
    Problème identifié.

    IE n'aime pas lorsque l'id se trouve dans un <tr>... (oui j'utilise encore les vieux tableaux).
    J'ai passé outre en l'utilisant dans un <td>.

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

Discussions similaires

  1. [FRAMES] quand tu nous tiens
    Par hisy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/07/2006, 13h37
  2. [FRAME] Quand tu nous tiens
    Par hisy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 07/07/2006, 08h27
  3. [Sessions] Session quand tu nous tiens
    Par arti2004 dans le forum Langage
    Réponses: 10
    Dernier message: 27/05/2006, 19h19
  4. Regex quand tu nous tiens !!!
    Par calimero642 dans le forum Langage
    Réponses: 9
    Dernier message: 22/03/2006, 14h33
  5. [object HTMLSelectElement] IE quand tu nous tiens
    Par NeHuS dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/03/2006, 08h26

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