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

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    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
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    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 ??
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    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
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    Citation Envoyé par NoSmoking
    Oui, mais il y a un Polyfill
    https://developer.mozilla.org/fr/doc...tch#Voir_aussi
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    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
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    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();
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    j'ai testé mais le résultat reste le même...

  8. #8
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    tu peux faire voir ton code pour qu'on ouisse comprendre ?

    t'a bien changé tous les xmlhttp. en xmlhttp_1. ou xmlhttp_2. suivant leurs fonctions respectives ???

    J'ai un gros doute, la
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Lorsque tu fais cette déclaration xmlhttp=new XMLHttpRequest() et en absence de mot clé var ta variable est définie comme globale, il y a effectivement des chances pour qu'il y ait collusion mais sachant que tes deux fonctions sont visiblement indépendantes le risque reste minime.

    Pour un codage plus propre, et une non pollution de l'espace global, déclare, dans tes fonctions, ta variable comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var xmlhttp=new XMLHttpRequest();
    Nota: à voir tes fonctions cela pourrait être factorisé mais ceci est un autre problème.

    Pourrais tu en dire plus sur ton dysfonctionnement.

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    J'ai 3 SELECT.

    Le premier est alimenté directement avec une requête MySQL, le second est alimenté en fonction du choix du premier et le troisième en fonction du second.

    Sous Firefox tout est OK. Sous IE je n'ai que le premier SELECT qui est rempli, les autres reste vides...

    Code de mon 1er SELECT:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    			<div class="form-group">
    				<label>Ligne:</label>
    				<select class="form-control" style="width:auto" id="ligne" name="ligne" onchange="Loadcells(this.value)">
    					<option value="line_default"></option>
    						<?php
                                                    $Query_line = "SELECT * FROM gmao.lines ORDER BY Lineshortname";
                                                    mysqli_query($db, $Query_line) or die('Error querying database.');
                                                    $Query_line = mysqli_query($db, $Query_line);
                                                    while ($Row_line = mysqli_fetch_array($Query_line)) {
                                                            echo '<option ID="'.$Row_line['ID'].'">'.$Row_line['Lineshortname'].'</option>';}
                                                    ?>	
    				</Select>
    			</div>

    Mon second SELECT:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    			<div class="form-group">
    				<label>Cellule:</label>
    					<select class="form-control" style="width:auto" id="cellule" name="cellule" onchange="Loadlocation(this.value)"></select><br>					
    			</div>

    Mon troisième SELECT:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		<div class="form-inline"><br />
    			<label for="sel1">Emplacement sur le poste:</label>
    				<select class="form-control" style="width:auto" id="location" name="location"></select>
    		</div>

    Code AJAX associé:

    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
    				var xmlhttp_1=new XMLHttpRequest();
    			} else { // code for IE6, IE5
    				var xmlhttp_1=new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			xmlhttp_1.onreadystatechange=function() {
    				if (this.readyState==4 && this.status==200) {
    				document.getElementById("cellule").innerHTML=this.responseText;
    				}
    			}
     
    			xmlhttp_1.open("GET","Ajaxloadcells.php?line="+ligne.options[ligne.selectedIndex].id+"&idtool=<?PHP echo $Tool?>&idtooltype=<?PHP echo $id_tooltype?>", true);
    			xmlhttp_1.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
    				var xmlhttp_2=new XMLHttpRequest();
    			} else { // code for IE6, IE5
    				var xmlhttp_2=new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			xmlhttp_2.onreadystatechange=function() {
    				if (this.readyState==4 && this.status==200) {
    				document.getElementById("location").innerHTML=this.responseText;
    				}
    			}
    			//alert(str);
    			xmlhttp_2.open("GET","ajaxloadlocationtool.php?idline="+ligne.options[ligne.selectedIndex].id+"&idcell="+cellule.options[cellule.selectedIndex].id+"&idtool=<?PHP echo $Tool?>", true);
    			xmlhttp_2.send();
    		}
    	</script>

  11. #11
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    à priori, il n'y a rien qui cloche dans ton JavaScript, même si perso je n'aurais jamais codé ça de cette façon...

    Il y a peut être un soucis pour avoir utiliser le mot location comme nom pour un ID, mais bon, ça doit passer quand même

    idem pour les xmlhttp_1.onreadystatechange = function () {
    if (this.readyState == 4 && this.status == 200) {


    qui auraient pus être xmlhttp_1.onreadystatechange = function () {
    if (xmlhttp_1.readyState == 4 && xmlhttp_1.status == 200) {


    mais ça aussi c'est complètement secondaire.


    en revanche la génération de code PHP me pose un soucis :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while ($Row_line = mysqli_fetch_array($Query_line)) {
    	echo '<option ID="'.$Row_line['ID'].'">'.$Row_line['Lineshortname'].'</option>';}
    parce qu'il signifie qu'aucun élément n'a de value,

    alors je me demande comment ça se passe pour tes 2 appels (Loadcells(this.value) et Loadlocation(this.value)) vu qu'il ny a aucune values


    sinon les variables ligne et cellule semblent sortir d'un chapeau, même si je me doute un peu sur ce à quoi elles font référence, même si par la suite on retrouve des document.getElementById("cellule"). / "location") qui bizarement vont détruire les select....

    et de mon souvenir, FireFox utilise le contenu de la balise option s'il n'y a pas de value indiqué, mais pas Internet Explorer.

    Mais bon, j'ai quand même un doute aussi la dessus, le mieux serait encore de voir ce qui se passe dans le débogueur d'IE11;


    reste que le fait d'utiliser de remplir les attributs value sur les select html serait tout de même une bonne chose à faire.
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    J'ai rajouté value dans mes option, modifié selon tes réponses et c'est toujours la même galère... Je ne comprends franchement pas pourquoi...

    Je me trompe peut-être mais je pense que cela doit bloqué au niveau des xmlhttp.open() et xmlhttp.send() (cf. mes codes ci-dessus).

  13. #13
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Ce qui serait intéressant c'est que tu mettes le code HTML généré, CTRL + U sur la plupart des navigateurs.

  14. #14
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    Citation Envoyé par Supernatural Voir le message
    Bonjour,

    J'ai rajouté value dans mes option, modifié selon tes réponses et c'est toujours la même galère... Je ne comprends franchement pas pourquoi...

    Je me trompe peut-être mais je pense que cela doit bloqué au niveau des xmlhttp.open() et xmlhttp.send() (cf. mes codes ci-dessus).
    ben, c'est sur faudrait déjà savoir ce qu'il y a dans
    "Ajaxloadcells.php?line=" + ligne.options[ligne.selectedIndex].id + "&idtool=<?PHP echo $Tool?>&idtooltype=<?PHP echo $id_tooltype?>"
    et
    "ajaxloadlocationtool.php?idline=" + ligne.options[ligne.selectedIndex].id + "&idcell=" + cellule.options[cellule.selectedIndex].id + "&idtool=<?PHP echo $Tool?>"

    parce que d'ici c'est in-devinable...

    ceci dit, je ne sais pas d'ou sort la base de ton code des XMLHttpRequest mais je me servirait plutot de ça : => https://developer.mozilla.org/en-US/...Simple_Example


    avec pour base :
    Code HTML : 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
    <!doctype html>
    <html lang="fr">
    <head>
    	<meta charset="UTF-8">
    	<title>  double HTTP request </title>
    </head>
    <body>
     
    	<div class="form-group">
    		<label>Ligne:</label>
    		<select class="form-control" style="width:auto" id="ligne" name="ligne" >
    			<option id ="lx" value="lin_xxx" selected >ligne xxx </option>
    			<option id ="la" value="lin_aaa"  >ligne aaa </option>
    			<option id ="lb" value="lin_bbb"  >ligne bbb </option>
    			<option id ="lc" value="lin_ccc"  >ligne ccc </option>
    			<option id ="ld" value="lin_ddd"  >ligne ddd </option>
    			<option id ="le" value="lin_eee"  >ligne eee </option>
    		</Select>
    	</div>
     
     
    	<div class="form-group">
    		<label>Cellule:</label>
    		<select class="form-control" style="width:auto" id="cellule" name="cellule" >
    			<option id ="cx" value="cel_xxx" selected >cellule xxx </option>
    			<option id ="ca" value="cel_aaa"  >cellule aaa </option>
    			<option id ="cb" value="cel_bbb"  >cellule bbb </option>
    			<option id ="cc" value="cel_ccc"  >cellule ccc </option>
    			<option id ="cd" value="cel_ddd"  >cellule ddd </option>
    			<option id ="ce" value="cel_eee"  >cellule eee </option>
    			<option id ="cf" value="cel_fff"  >cellule fff </option>
    		</select><br>					
    	</div>
     
    	<div class="form-inline"><br />
    		<label for="sel1">Emplacement sur le poste:</label>
    			<select class="form-control" style="width:auto" id="location" name="location"></select>
    	</div>
     
     
    	<script  type="text/javascript">
     
                    var
                            list_ligne    = document.getElementById('ligne'),
                            list_cellule  = document.getElementById('cellule'),
                            list_location = document.getElementById('location')
                    ;
     
                    function f_changement_ligne(e) {
                            console.log(this.value);
                            console.log(this.selectedIndex);
                            console.log(this.options[this.selectedIndex].id);
                    }
     
                    function f_changement_cellule(e) {
                            console.log(this.value);
                            console.log(this.selectedIndex);
                            console.log(this.options[this.selectedIndex].id);
                    }
     
                    list_ligne.addEventListener('change', f_changement_ligne, false);
                    list_cellule.addEventListener('change', f_changement_cellule, false);
     
            </script>
    </body>
    </html>
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    La base de mon code sort d'ici: https://www.w3schools.com/php/php_ajax_database.asp

  16. #16
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    Ben , c'est plutôt malheureux de donner de tels exemples de code....
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  17. #17
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    bon visiblement l'implémentation de XMLHttpRequest sous IE11 à des soucis => https://caniuse.com/#search=XMLHttpRequest

    Cad que cette fonctionnalité existe bien sous IE 11 mais que visiblement elle à du mal à gérer un " double emploi ".

    Donc, à moins de factoriser ton code AJAX, je ne vois pas de solution possible,
    et ça m'étonnerai que tu puisse te rabattre sur l'ancienne activeX utilisée sous IE 6 , 5 , 4...
    car visiblement ce n'est plus implémenté sur les Windows >= 7.. (?)
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    "Donc, à moins de factoriser ton code AJAX" -> C'est à dire?

    Je veux bien un exemple car je vois pas comment on peut faire...

  19. #19
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    ben tu fait une seule fonction dans lequel tu met ton unique code Ajax, mais dont les arguments d'appels permettent de savoir laquelle de tes 2 listes est à traiter...

    le mot factoriser viens des maths, quand tu a une équation = (a x b) + (a x c), tu peux mettre en facteur " a " soit = a x ( b+ c ) parce que " a " est commun au 2 parties de l'équation.
    Ici ce qui est commun à tes 2 traitements c'est un appel Ajax...
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  20. #20
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Revenons un peu en arrière
    mais pas sous IE11... Ma première cellule est bien alimentée mais la seconde reste toujours vide...
    Si IE11 plante uniquement sur le 2éme appel :
    • est-ce que tu as essayé de lancer c 2éme appel directement en mettant une valeur en dur dans ton code.
    • Ne pas oublier de vérifier le code HTML généré, CTRL + U sur la plupart des navigateurs, comme demandé précédemment.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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