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 :

Xmlhttprequest, problème avec IE... et pas sous Firefox


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 39
    Points : 15
    Points
    15
    Par défaut Xmlhttprequest, problème avec IE... et pas sous Firefox
    Bonjour à tous,

    Je regarde actuellement ce qui peut se faire avec Xmlhttprequest, j'ai donc commencé un formulaire utilisant cette technique.

    Tout marche nickel sur Firefox, et sous IE en revanche, problème !...

    IE affiche une fois le fichier php appelé par le script, et il l'affiche mal, puis si on actualise ou qu'on change de page et que l'on revient, là il n'afiche carrément plus le fichier php appelé !

    Voici mon code dans le fichier js :

    function Appel(File) {
    var xhr_object = null;
    if(window.XMLHttpRequest) // Firefox
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else { // XMLHttpRequest non supporté par le navigateur
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    return;
    }
    xhr_object.open("GET", File, true);

    xhr_object.onreadystatechange = function() {
    if(xhr_object.readyState == 4) EffacerDiv(xhr_object.responseText) ;
    }
    xhr_object.send(null);
    }

    function AjouterDiv(txt) {
    document.getElementById("dData").innerHTML += txt+"<br />";
    document.getElementById("dData").scrollTop = document.getElementById("dData").scrollHeight;
    }

    function EffacerDiv(txt_temp) {
    document.getElementById("dData").innerHTML = "";
    AjouterDiv(txt_temp) ;
    }

    function collectData() {
    s = "";
    for (i = 0; i < 6; i++) {
    totalRadio = document.getElementsByName("choix"+i).length;
    for (j = 0; j < totalRadio; j++) {
    if (document.getElementsByName("choix"+i)[j].checked == true){
    s = s + "choix"+i+"=" + document.getElementsByName("choix"+i)[j].value;
    if (i != 5)
    s = s +"&";
    }
    }
    }
    Appel('XHR.php?calc=true&'+s);
    }
    Et dans le code, un premier appel pour afficher le fichier php une première fois :

    <script type="text/javascript">
    Appel('XHR.php') ;
    </script>
    Puis la div :

    <div id="dData"></div>
    Si quelqu'un a une idée de pourquoi ça ne fonctionne pas correctement sur IE (6), parceque ça fonctionne très bien sur Firefox

    Merci !

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    salut,
    as tu un message d'erreur ?
    que retourne tu avec ton php ?

    Tu devrais peut etre raouté un test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(xhr_object.readyState == 4 && xhr_object.status == 200) EffacerDiv(xhr_object.responseText) ;
    }
    comme ça tu teste aussi la réponse du serveur, on sait jamais

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Aucun message d'erreur ! Simplement page vide à l'endroit ou il devrait y avoir le formulaire sur IE...

    Le PHP retourne un formulaire, et quand il est appelé avec des paramètres, ça met à jour les infos du formulaire.

    Si je rajoute ton test, c'est pareil
    A la première fois, quand je lance IE et queje vais sur la page, ça s'affiche, mais en cas d'une actualisation ou d'un changement de page, après plus rien...

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ok donc ca marche une fois mais pas deux.

    Mais la première fois ca marche correctment ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Voilà la première fois quand tu lances IE et que tu y vas, ça fonctionne (sauf un petit bug d'affichage mais pas grave je pense), par contre si tu actualises ça ne marche plus, et si tu changes de page ou de site et que tu reviens, ça ne s'affiche plus non plus !

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    je me demande si ca serais pas un probleme de cache ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Comment ça ? Du navigateur ? J'ai fait l'essai en le vidant, mais ça ne change rien

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    met toi un alert dans la fonction pour voir si il y repasse bien.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    J'ai essayé plusieurs alert et il y à un endroit ou ça coince, dans EffacerDiv :

    function EffacerDiv(txt_temp) {
    document.getElementById("dData").innerHTML = "";
    AjouterDiv(txt_temp) ;
    }

    Si je met alert(txt_temp) avant document.getElementById("dData").innerHTML = "";, j'ai bien l'alert avec le script PHP dedans, mais après document.getElementById("dData").innerHTML = ""; il n'y a plus moyen d'afficher un alert !

  10. #10
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ok, ta page est pas finie de charger quand il le fait je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script type="text/javascript">
    window.onload=function(){
    Appel('XHR.php') ;
    }
    </script>

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Effectivement, ça règle le problème !
    Il me reste encore un problème d'affichage... mais ça c'est IE je pense ^^

    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2008, 11h23
  2. Problème onHistoryChanged avec GTW 1.4 sous firefox
    Par feonix dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 23/11/2007, 11h13
  3. Problème avec createElement et option sous Firefox
    Par krapno dans le forum Général JavaScript
    Réponses: 36
    Dernier message: 29/04/2006, 13h05
  4. problème avec une page web sous firefox!
    Par 3psilOn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 24/11/2004, 11h49

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