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 :

[AJAX] Listes liées et IE


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Educateur spécialisé
    Inscrit en
    Janvier 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Educateur spécialisé
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 238
    Par défaut [AJAX] Listes liées et IE
    Bonjour tous le monde.
    J'ai des listes liées sur mon site qui fonctionnent très bien avec firefox (je remercie rawsrc au passage car il m'a bien aidé) mais qui ne fonctionnent pas du tout sur IE.
    Le problème classique j'ai beau chercher sur les forums mais je ne vois rien d'anormale dans la création de mon objet XMLHttpRequest
    Si quelqu'un peux m'aider à trouver une solution ce serai sympas de sa part.
    Voici mon code js
    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
     
    <script type="application/javascript">
    function getXMLHttpRequest() {
    	var xhr = null;
     
    	if (window.XMLHttpRequest || window.ActiveXObject) {
    		if (window.ActiveXObject) {
    			try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch(e) {
    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    		} else {
    			xhr = new XMLHttpRequest(); 
    		}
    	} else {
    		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
    		return null;
    	}
     
    	return xhr;
    }
    function refreshMarques() {
                       var listTypes = document.getElementById('types');
                       var idType = listTypes.options[listTypes.selectedIndex].value;
    				   var xhr   = getXMLHttpRequest();
                       if (idType != '') {
                          callAndRefresh('marques', '<?php echo ROOTPATH; ?>/insert/refreshMarques.php', 'type='+idType);
                       }
                    }
    				function refreshGammes() {
    					var listMarques = document.getElementById('marques');
    				   	var idMarque = listMarques.options[listMarques.selectedIndex].value;
    				   	var listTypes = document.getElementById('types');
    				  	var idType = listTypes.options[listTypes.selectedIndex].value;
    				   	if ((idMarque != '') && (idType != '')) {
    					  callAndRefresh('gammes', '<?php echo ROOTPATH; ?>/insert/refreshGammes.php', 'marque='+idMarque+'&type='+idType);
    				   }
    				}
    				function refreshImprimantes() {
    					var listGammes = document.getElementById('gammes');
                       	var idGamme = listGammes.options[listGammes.selectedIndex].value;
    				   	var listMarques = document.getElementById('marques');
    				   	var idMarque = listMarques.options[listMarques.selectedIndex].value;
    				   	var listTypes = document.getElementById('types');
    				  	var idType = listTypes.options[listTypes.selectedIndex].value;
                       if ((idGamme != '') && (idMarque != '') && (idType != '')) {
                          callAndRefresh('imprimantes', '<?php echo ROOTPATH; ?>/insert/refreshImprimantes.php', 'gamme='+idGamme+'&marque='+idMarque+'&type='+idType);
                       }
                    }
     
                    function callAndRefresh(id, url, params) {
                       var xhr = getXMLHttpRequest();
                       xhr.onreadystatechange = function(){
                          // si on a tout reçu et que le serveur est ok
                          if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
                          {
    					  	document.getElementById("loader").style.display = "none";
                             // On se sert de innerHTML pour rajouter les options a la liste des "selections"
                             document.getElementById(id).innerHTML = xhr.responseText;
                         } else if (xhr.readyState < 4) {
    							document.getElementById("loader").style.display = "inline";
    						}
                       }
                       // on defini la methode (post) + le fichier de traitement + asynchrone (true)
                       xhr.open("POST", url , true);
                       xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                       // on poste les parametres a transmettre au fichier qui fera le traitement
                       xhr.send(params);
                    } 
                     </script>
    Merci d'avance.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour

    <script type="application/javascript">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">
    A+.

  3. #3
    Membre éclairé
    Homme Profil pro
    Educateur spécialisé
    Inscrit en
    Janvier 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Educateur spécialisé
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 238
    Par défaut
    J'y avais pensé mais ça ne fonctionne toujours pas.
    Avec <script type="text/javascript"> ma seconde liste est vide et avec <script type="application/javascript">, voici l'erreur dans le debbugeur :
    Line: 956
    Erreur : Objet attendu
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="types" name="type" onchange="refreshMarques();">
    Merci de ton aide.

Discussions similaires

  1. [AJAX] Listes liées: quelle solution?
    Par Xavier1979 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/05/2007, 09h40
  2. [AJAX] Listes liées
    Par oranocha dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/02/2007, 06h59
  3. [AJAX] listes liées : faire une redirection
    Par _nico42_ dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/10/2006, 13h28
  4. [AJAX] liste liée ajax: s'iou plait, cherchez l'erreur
    Par redwire dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/09/2006, 20h26
  5. [AJAX]Listes liées multiples
    Par Schuss dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 27/06/2006, 16h31

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