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 :

[DOM] affichage naviguateur liste déroulant lié


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Par défaut [DOM] affichage naviguateur liste déroulant lié
    Bonjour j'ai créé une cascade de trois listes liés les une aux autres, sélection du menu, du sous menu puis de la rubrique.

    Ce code marche sans problème sur firefox, et safari. Mais pour internet explorer et opéra c'est une autre histoire.
    IE ne m'affiche aucune erreur mais ne va pas chercher les valeurs et opéra lui affiche ce message d'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Event thread: change
    Error:
    name: TypeError
    message: Statement on line 43: Could not convert undefined or null to object
    Backtrace:
    Line 43 of inline#2 script in http://localhost/CMS/admin/index_admin.php?page=modification&action=supprimer&niveau=rubrique
    idmenu = sel.options[sel.selectedIndex].value;
    Line 1 of  script 
    go();
    At unknown location
    [statement source code not available]
    Mon code javascript étant celui-ci:
    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
    <script type='text/javascript'>
    function getXhr(){
         var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr;
    			}
    			
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    			function go(){
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    	ligne 43->			xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('sous_menu').innerHTML = leselect;
    					}
    				}
    
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajax_menu.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id du menu
    				sel = document.getElementById('menu');
    				idmenu = sel.options[sel.selectedIndex].value;
    				xhr.send("idmenu="+idmenu);
    			}
    </script>
    Je ne comprend pas pourquoi ce code marche sur deux navigateur sur quatre.
    Merci de m'aide

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('sous_menu').innerHTML = leselect;
    'sous_menu' représente-t-il le select lui même, ou son conteneur (div ou autre) ?

    Pour IE, il faut que ta page PHP renvoie la balise select complète en plus des options à actualiser.

    Ceci dit, si ton select est dans un <form> tu auras toujours des problême avec innerHTML : il faut utiliser les syntaxes DOM (un exemple ici ) ...

    A+

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    try {
    xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    Regarde tes options...
    outils->options intrenet->proprammes->Gérer les modules complémentaires

    regarde si les activex en question est activé...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Par défaut
    Donc effectivement je ne retrouve pas les activeX.
    Comment faire pour les récupérer et les activer?

    "sous_menu" est le nom et l'id du select ou s'affiche la deuxième liste. En fonction de la liste menu.

  5. #5
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    il y a un lien en bas...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Par défaut
    Alors, j'ai cliqué sur le lien.
    Mais les sites de microsofts sont tellement mal fait que je m'y perd.

    Sinon est ce qu'il existe un moyen pour que je fasse télécharger et activer automatiquement les activeX que j'ai besoin par les utilisateurs de cette liste.
    Merci

Discussions similaires

  1. Affichage de listes déroulante
    Par tuxmat dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/06/2008, 16h53
  2. Réponses: 7
    Dernier message: 24/01/2008, 08h51
  3. affichage =/= valeur (liste déroulante)
    Par laurent.c123 dans le forum JSF
    Réponses: 2
    Dernier message: 05/06/2007, 13h08
  4. Pb d'affichage avec liste déroulante
    Par Tintou dans le forum Access
    Réponses: 5
    Dernier message: 02/05/2007, 17h28
  5. Aide pour un affichage de listes déroulantes
    Par jfjava2002 dans le forum Langage
    Réponses: 1
    Dernier message: 02/03/2006, 18h01

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