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

AJAX Discussion :

XMLHttpRequest fonctionne sous FireFox mais pas sous IE11


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 479
    Par défaut XMLHttpRequest fonctionne sous FireFox mais pas sous IE11
    Bonjour,

    J'ai ce script qui fonctionne bien sous Firefox, mais pas sous IE11... Ma première cellule est bien alimentée mais la seconde reste toujours vide...
    A t'on le doit de mettre du PHP dans du xmlhtttp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlhttp.open("GET","Ajaxloadcells.php?line="+ligne.options[ligne.selectedIndex].id+"&idtool=<?PHP echo $Tool?>&idtooltype=<?PHP echo $id_tooltype?>", true);
    ?

    Merci par avance pour votre aide.

    Ci-joint mon code

    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
     
    	<script type="text/javascript">
    		function Loadcells(str) {
    			var id=ligne.options[ligne.selectedIndex].id;
    			//alert(id);
    			if (str=="") {
    				document.getElementById("cellule").innerHTML="";
    				return;
    			}
    			if (window.XMLHttpRequest) {
    				// code for IE7+, Firefox, Chrome, Opera, Safari
    				xmlhttp=new XMLHttpRequest();
    			} else { // code for IE6, IE5
    				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			xmlhttp.onreadystatechange=function() {
    				if (this.readyState==4 && this.status==200) {
    				document.getElementById("cellule").innerHTML=this.responseText;
    				}
    			}
    			//alert(str);
    			xmlhttp.open("GET","Ajaxloadcells.php?line="+ligne.options[ligne.selectedIndex].id+"&idtool=<?PHP echo $Tool?>&idtooltype=<?PHP echo $id_tooltype?>", true);
    			xmlhttp.send();
    		}
    	</script>

  2. #2
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    comprend pas bien la question...

    Oui, tu peux appeler un fichier php par une fonction XMLHttpRequest et lui mettre des arguments php qui sont générés en même temps que la page


    mais pourquoi mettre un argument (str) dans ta fonction Loadcells(str)
    alors qu'il ne sert à rien dans ton appel ajax ?

    et si la finalité c'est juste de mettre du code html généré sur ton serveur pour le placer dans un élément de ta page html ,
    pourquoi n'utilise tu pas tout simplement un fetch dans ce cas ??

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    actuellement on peut initialiser simplement avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var oXhr = window.XMLHttpRequest;
    et écrire plus clairement la fonction avec onload, par exemple
    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
    function Loadcells(str) {
      var id = ligne.options[ligne.selectedIndex].id;
      if (str === "") {
        document.getElementById("cellule").innerHTML = "";
        return;
      }
      var oXhr = window.XMLHttpRequest;
      oXhr.onload = function () {
        document.getElementById("cellule").innerHTML = this.responseText;
      }
      oXhr.error = function (event) {
        console.log( event.message);
      }
     
      oXhr.open("GET", "Ajaxloadcells.php?line=" + id + "&idtool=<?PHP echo $Tool?>&idtooltype=<?PHP echo $id_tooltype?>", true);
      oXhr.send();
    }
    Par contre je ne saisie pas la notion de seconde cellule !?!

    Peut être as tu un problème de cache avec IE ?

    @psychadelic :
    Attention fetch n'est pas supporté par IE.

  4. #4
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Citation Envoyé par NoSmoking
    Oui, mais il y a un Polyfill
    https://developer.mozilla.org/fr/doc...tch#Voir_aussi

  5. #5
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 479
    Par défaut
    Bonjour,

    merci pour vos réponse.

    Une chose étonnante que je viens de voir, c'est que j'ai un autre script qui est constitué de la même sorte et lui fonctionne bien sous IE...

    Petite précision, j'utilise plusieurs fois le xmlhttp dans la même page avec le script qui me pose soucis... ai-je le dois?

    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
     
    <script type="text/javascript">
    		function Loadcells(str) {
    			var id=ligne.options[ligne.selectedIndex].id;
    			//alert(id);
    			if (str=="") {
    				document.getElementById("cellule").innerHTML="";
    				return;
    			}
    			if (window.XMLHttpRequest) {
    				// code for IE7+, Firefox, Chrome, Opera, Safari
    				xmlhttp=new XMLHttpRequest();
    			} else { // code for IE6, IE5
    				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			xmlhttp.onreadystatechange=function() {
    				if (this.readyState==4 && this.status==200) {
    				document.getElementById("cellule").innerHTML=this.responseText;
    				}
    			}
     
    			xmlhttp.open("GET","Ajaxloadcells.php?line="+ligne.options[ligne.selectedIndex].id+"&idtool=<?PHP echo $Tool?>&idtooltype=<?PHP echo $id_tooltype?>", true);
    			xmlhttp.send();
    		}
    	</script> 
     
    	<script type="text/javascript">
    		function Loadlocation(str2) {
    			var id2=cellule.options[cellule.selectedIndex].id;
    			//alert(id);
    			if (str2=="Sélectionner une cellule") {
    				document.getElementById("location").innerHTML="";
    				return;
    			}
    			if (window.XMLHttpRequest) {
    				// code for IE7+, Firefox, Chrome, Opera, Safari
    				xmlhttp=new XMLHttpRequest();
    			} else { // code for IE6, IE5
    				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			xmlhttp.onreadystatechange=function() {
    				if (this.readyState==4 && this.status==200) {
    				document.getElementById("location").innerHTML=this.responseText;
    				}
    			}
    			//alert(str);
    			xmlhttp.open("GET","ajaxloadlocationtool.php?idline="+ligne.options[ligne.selectedIndex].id+"&idcell="+cellule.options[cellule.selectedIndex].id+"&idtool=<?PHP echo $Tool?>", true);
    			xmlhttp.send();
    		}
    	</script>

  6. #6
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    oui, tu a le droit d'utiliser autant XMLHttpRequest que tu veux sur une même page , mais si tu leur donne à tous le même nom ça ne pourra pas bien marcher !

    donne leur déjà des noms différents ça sera un meilleur départ...

    xmlhttp_1 =new XMLHttpRequest();

    xmlhttp_2 =new XMLHttpRequest();

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

Discussions similaires

  1. [MySQL] Lien fonctionne sous Firefox mais pas sous IE
    Par Nicos77 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/01/2008, 10h29
  2. FORM fonctionne sous IE mais pas sous Firefox
    Par baudogu dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/09/2007, 16h50
  3. Fonctionne sous Firefox mais pas sous IE.
    Par ploxien dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/03/2007, 11h50
  4. fonction javascript fonctionnant sous firefox mais pas sous IE
    Par calitom dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/03/2007, 12h56
  5. Fonctionne sous IE6 mais pas sous Firefox - Help
    Par fma2112 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/06/2006, 08h29

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