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] readystatechange et Explorer


Sujet :

JavaScript

  1. #1
    Membre confirm� Avatar de Shin_RockmanX
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    78
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 78
    Par d�faut [AJAX] readystatechange et Explorer
    Bonjour � tous.
    Bon alors je dois dire que mon probl�me est tr�s tr�s bizarre et je m'en remet � vos connaissances d'expert pour m'aider.

    Le principe: j'ai une page sur laquelle les administrateurs du site peuvent g�rer les items, les cat�gories, les utilisateurs et les magasin.

    Pour chaque type, il y a un select qui a en �v�nement onchange une fonction ajax qui permet de remplir le formulaire adjacent avec les donn�es de l'�l�ment s�lectionn�.

    voici le code ajax qui est activ� lors de l'�v�nement onchange:

    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
    93
    function makeRequest(idsearch, typesearch) {
        if (!http_request) {
          alert('Erreur AJAX. Mettre à jour votre navigateur.');
          return false;
       }
     
       if (http_request.readyState==4 || http_request.readyState==0) {
     
    		 if (typesearch=='shop') {
    		   http_request.onreadystatechange = fillShop;
    		   http_request.open('GET', "searchshop.ags?id="+idsearch, true);
    		 }
    		 else if (typesearch=='user') {
    		   http_request.onreadystatechange = fillUser;
    		   http_request.open('GET', "searchuser.ags?id="+idsearch, true);
    		 }
    		 else if (typesearch=='category') {
    		   http_request.onreadystatechange = fillCategory;
    //		   http_request.onreadystatechange = function() {alert(http_request.readyState);}
    		   http_request.open('GET', "searchcategory.ags?id="+idsearch, true);
    		 }
    		 else if (typesearch=='item') {
    		   http_request.onreadystatechange = fillItem;
    		   http_request.open('GET', "searchitem.ags?id="+idsearch, true);
    		 }
     
     
    	   http_request.send(null);
    	}
    }
     
    function fillShop() {
     
      if (http_request.readyState == 4) {
        if (http_request.status == 200) {
    	  document.getElementById("nameShop").value=http_request.responseText;
        } else {
          alert('There was a problem with the request.');
         }
      }
     
    }
     
    function fillCategory() {
      if (http_request.readyState == 4) {
        if (http_request.status == 200) {
    	  document.getElementById("nameCategory").value=http_request.responseText;
        } else {
          alert('There was a problem with the request.');
         }
      }
      else {
    //		alert(http_request.readyState);
    	}
    }
     
    function fillUser() {
     
      if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        	var parser=new DOMImplementation();
    	  	var xmlDoc=parser.loadXML(http_request.responseText);
    		 	var shopNode = xmlDoc.getElementsByTagName('user').item(0).getChildNodes();
      		document.getElementById("nameUser").value=shopNode.item(0).getChildNodes();
      		document.getElementById("passUser").value=shopNode.item(1).getChildNodes();
      		document.getElementById("shopUser").value=shopNode.item(2).getChildNodes();
      		document.getElementById("adminUser").checked=(shopNode.item(3).getChildNodes()==1);
        }
    		else {
          alert('There was a problem with the request.');
         }
      }
     
    }
     
    function fillItem() {
     
      if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        	var parser=new DOMImplementation();
    	  	var xmlDoc=parser.loadXML(http_request.responseText);
    		 	var itemNode = xmlDoc.getElementsByTagName('item').item(0).getChildNodes();
      		document.getElementById("barcodeItem").value=itemNode.item(0).getChildNodes();
      		document.getElementById("nameItem").value=itemNode.item(1).getChildNodes();
      		document.getElementById("categoryItem").value=itemNode.item(2).getChildNodes();
      		document.getElementById("priceItem").value=itemNode.item(3).getChildNodes();
        }
    		else {
          alert('There was a problem with the request.');
         }
      }
     
    }
    Sous firefox, tout ce passe comme pr�vu �a marche parfaitement.
    Sous explorer, �a ne marche que la premi�re fois. apr�s �a ne marche plus.

    Alors j'ai fait des test en affichant des alert('ok'); sous diff�rentes parties du code.

    J'ai fait les constations suivante:
    • A chaque changement de la liste, la m�thode makerequest effectue bel et bien les op�ration demand�e
    • apr�s le 1er appel, la fonction d�finie en "onreadystatechange" n'est plus rappel�


    c'est tr�s bizarre.

    Quelqu'un a une id�e???

    Merci d'avance

  2. #2
    Expert confirm�

    Avatar de denisC
    Profil pro
    D�veloppeur Java
    Inscrit en
    F�vrier 2005
    Messages
    4 050
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : Service public

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 4 050
    Par d�faut
    Citation Envoy� par Shin_RockmanX Voir le message
    c'est tr�s bizarre.

    Quelqu'un a une id�e???
    C'est normal, c'est une "feature" d'Internet Explorer.

    Il faut absolument faire appel � la m�thode abort sur ton objeet xhr si tu veux le r�-utiliser dans IE.

    Normalement, tout se passera correctement apr�s �a.

    R�f�rence : http://radio.javaranch.com/pascarell...735438047.html

  3. #3
    Membre confirm� Avatar de Shin_RockmanX
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    78
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 78
    Par d�faut
    merci beaucoup j'avais jamais lu �a avant c'est super �a marche niquel.
    d�sol� pour la question apparemment triviale

  4. #4
    Expert confirm�

    Avatar de denisC
    Profil pro
    D�veloppeur Java
    Inscrit en
    F�vrier 2005
    Messages
    4 050
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : Service public

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 4 050
    Par d�faut
    Citation Envoy� par Shin_RockmanX Voir le message
    d�sol� pour la question apparemment triviale
    Tu n'as aucune raison de t'excuser. La question est pas triviale, et elle m�riterait largement de figurer dans la FAQ (mais que fait le responsable )

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Struts2 Ajax et Internet Explorer 6 :'(
    Par serj' dans le forum Struts 2
    R�ponses: 8
    Dernier message: 26/07/2009, 00h13
  2. [AJAX] ajax et internet explorer 7
    Par michael rossi dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 29/07/2008, 15h39
  3. (Ajax crossBrowser) Internet Explorer..
    Par heliophane dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 11/04/2008, 11h35
  4. [AJAX] ajax et internet explorer :s
    Par zakuza dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 27/04/2007, 19h35
  5. [AJAX] Ajax sous internet explorer 7
    Par leoche dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 06/04/2007, 12h41

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