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 :

Variable undefined uniquement sur IE (11)


Sujet :

JavaScript

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    Mai 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur backend (python)

    Informations forums :
    Inscription : Mai 2014
    Messages : 77
    Points : 138
    Points
    138
    Par défaut Variable undefined uniquement sur IE (11)
    Bonjour à tous, je viens vous voir pour un petit soucis avec Internet Explorer.

    En effet, dans ma fonction JQuery, notre cher navigateur est le seul qui trouve ma variable non défini, et je ne sais vraiment pas pourquoi. Cette variable est passé via un ce code :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var tab = <?php echo json_encode($contenu)?>;

    Et voici la fonction JQuery en elle même :

    Code javascript : 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
    $(function(){
    	    var tab = <?php echo json_encode($contenu)?>;
    	    alert(tab);
     
    	    $('.but').on('click', function(){
    	        $('#service').html('');
    	        item= $(this).val();
    	        alert(tab[item]);
    	        if(tab[item].length > 1){
     
    	            for (i = 0; i < tab[item].length; i++) {
    	                var conc = $('#service').html();
    	                $('#services').after( $('#service').html(conc + '<input type=\'text\' class="text_service" value=\'' + tab[item][i] +'\' readonly />') )
    	            }
    	        }else{
    	            $('#services').after( $('#service').html('<input type=\'text\' class="text_service" value=\'' + tab[item] +'\' readonly />') )
    	        }
     
    	    $('#service').show();
    	    })
    	})

    Et je vous donne ici ce que j'obtiens en affichant la source dans IE :

    Code javascript : 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
     $(function(){
    	    var tab = {"admin-pc":["aix_cpu"],"apollo3":["aix_cpu"],"Cluster-IP3G":["aix_cpu"],"DELL726C6A":["aix_cpu"],"exchange-ip3g":["aix_cpu"],"gitlab":["aix_cpu"],"glpi-ip3g":["aix_cpu"],"ip3g-vcenter":["aix_cpu"],"ip3grammes":["aix_cpu"],"kyocera":["aix_mem"],"lync-ip3g":["rgrgrgg","cpu"],"san_ip3g":["rgrgrgg"],"SG300":["z"],"shinken":["aix_cpu","aix_mem","aix_net"],"srv-supervision":["aix_cpu"],"srv-vtiger":["aix_cpu","aix_mem"],"supervision-distant":["aix_cpu"],"test":["host_alive"],"test2":["aix_log","aix_time","aix_disks","aix_cpu","aix_load"],"testveeam6-5":["aix_cpu","aix_mem"]};
    	    alert(tab);
     
    	    $('.but').on('click', function(){
    	        $('#service').html('');
    	        item= $(this).val();
    	        alert(tab[item]);
    	        if(tab[item].length > 1){
     
    	            for (i = 0; i < tab[item].length; i++) {
    	                var conc = $('#service').html();
    	                $('#services').after( $('#service').html(conc + '<input type=\'text\' class="text_service" value=\'' + tab[item][i] +'\' readonly />') )
    	            }
    	        }else{
    	            $('#services').after( $('#service').html('<input type=\'text\' class="text_service" value=\'' + tab[item] +'\' readonly />') )
    	        }
     
    	    $('#service').show();
    	    })
    	})

    Ma première alert ligne 3 me retourne "[object Object]", comme tous les autres navigateur, mais la seconde, ligne 8, me renvoie "undefined" contrairement aux autres qui me renvoie les valeurs contenu dans mes sous tableaux. Et forcément, derrière le script plante complètement car il ne peut pas récupérer la taille d'une variable non défini.

    Si quelqu’un connait une solution pour un problème de ce type je suis preneur.

    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Tu as certainement dans ton HTML un élément ayant pour attribut name ou id la valeur item...

    Pourquoi faut-il toujours déclarer ses variables ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    Mai 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur backend (python)

    Informations forums :
    Inscription : Mai 2014
    Messages : 77
    Points : 138
    Points
    138
    Par défaut
    Je viens de vérifier, les seules fois ou le mot item est appelé dans ma page, c'est dans le script jquery, et si c'était le cas, ça planterait sur mozilla, chrome et opéra sur lesquels j'ai également testé ma page.

    Et merci pour le lien je vais allez voir ^^

    Edit : Ok, c'était ça, il fallait que je mette :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var item = $(this).val();

    Au lieu de :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    item = $(this).val();

    Merci beaucoup ^^

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/05/2010, 16h39
  2. OnBlur Déclenchement uniquement sur modification
    Par cosmos38240 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/11/2005, 00h20
  3. Réponses: 6
    Dernier message: 08/11/2005, 15h30
  4. Erreur de "Undefined index" sur HTTP_REFERER
    Par guy2004 dans le forum Langage
    Réponses: 4
    Dernier message: 12/10/2005, 12h21
  5. Comment installer le kernel 2.4.25-2 uniquement sur Mdk 10.0 ?
    Par Thrystan dans le forum Administration système
    Réponses: 8
    Dernier message: 12/08/2004, 11h32

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