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 :

Problème d'exécution incorrecte sous ie


Sujet :

JavaScript

  1. #41
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Tiens au fait, c'est pas le fait qu'il y ai un [] dans le nom ???
    C'est peut-être un caractère illégal...

  2. #42
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    si tu parles de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elements['article_liste_sujets[]']
    c'est la syntaxe utilisée pour php. Sans les crochets, ca ne marche pas en php car il croit que c'est une variable simple au lieu d'un tableau. Apres si c'est ca le pb, et bah adieu ie!!!

  3. #43
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par Choupinou
    si tu parles de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elements['article_liste_sujets[]']
    c'est la syntaxe utilisée pour php. Sans les crochets, ca ne marche pas en php car il croit que c'est une variable simple au lieu d'un tableau. Apres si c'est ca le pb, et bah adieu ie!!!
    Lol, y a peut-être moyen d'être moins radical... surtout qu'IE est le navigateur le plus utilisé du web...

    Et si tu essayais de voir si ca marchait pas mieux avec cette méthode la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByName("xyz[]")[0].getElementsByTagName("option")

  4. #44
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Choupinou
    si tu parles de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elements['article_liste_sujets[]']
    c'est la syntaxe utilisée pour php. Sans les crochets, ca ne marche pas en php car il croit que c'est une variable simple au lieu d'un tableau. Apres si c'est ca le pb, et bah adieu ie!!!
    Non, les crochets, ça marche très bien, il faut simplement passer par elements, comme Choupinou l'a fait.

    Si tu fais un alert de
    liste_sujets.length, il en dit quoi ie? (et FFx)?

  5. #45
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    711 pour les 2
    de meme pour alert(liste_sujets.options.length)

  6. #46
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Dans ce cas, c'est qu'IE ne prend pas en charge l'application de l'attribute display pour les options...

    alors, tu dois faire ceci :

    Pour cacher tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select.opt = document.createElement("div")
    select.opt.innerHTML=select.innerHTML
    select.innerHTML=""
    Pour afficher tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select.innerHTML=select.opt.innerHTML

  7. #47
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    ok merci mais la ca cache le select en entier c'est bien ca?

  8. #48
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par Choupinou
    ok merci mais la ca cache le select en entier c'est bien ca?
    Non, ca ne fait que cacher toutes les options...

  9. #49
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    ok. Ca devrait marcher pour tout cacher seulement dans mon code, j'ai d'autres fonctions qui ne cachent qu'une partie des options. Donc j'aurais le même problème pour les autres fonctions

  10. #50
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par Choupinou
    ok. Ca devrait marcher pour tout cacher seulement dans mon code, j'ai d'autres fonctions qui ne cachent qu'une partie des options. Donc j'aurais le même problème pour les autres fonctions
    Dans ce cas, je vais te rediger un petit code

  11. #51
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    lol merci beaucoup

  12. #52
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par FremyCompany
    Dans ce cas, je vais te rediger un petit 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
    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    <html>
        <head>
            <title>Select Adapter</title>
            <script type="text/javascript">
            makeSelect=function(s) {
                if (s.tagName.toLowerCase() != "select") {
                    throw "ArgumentException : 's' isn't a valid Select";
                }
                s.allOptions = new Array();
                var all=s.getElementsByTagName("option");
                for (var i=0; i<all.length; i++) {
                    s.allOptions[i] = all[i].cloneNode(true);
                    s.allOptions[i].display=true;
                    s.allOptions[i].setAttribute("index", i)
                    all[i].setAttribute("index", i)
                }
                s.allOptions.select=s;
                s.allOptions.add=function(text, value) {
                    var index=this.length;
                    var o=document.createElement("option");
                    o.display=true;
                    o.value=value;
                    o.setAttribute("index", index)
                    o.appendChild(document.createTextNode(text));
                    this[index]=o;
                    this.select.refresh();
                    return index;
                }
                s.allOptions.remove=function(index) {
                    this[index]=null; this.select.refresh(); return true;
                }
                s.refresh=function() {
                    /* Conserver la selection IE+FF */
                    /* Bug Connu : IE ne prend pas en charge la multi selection */
                    var all=this.getElementsByTagName("option");
                    for (var i=0; i<this.allOptions.length; i++) {
                        this.allOptions[i].removeAttribute("selected");
                        this.allOptions[i].selected=false;
                    }
                    for (var i=0; i<all.length; i++) {
                        var index=all[i].getAttribute("index");
                        var selected=all[i].selected;
                        if (""+selected+""=="true") {
                            this.allOptions[index].setAttribute("selected","selected");
                        }
                    }
                    /* Refresh, IE+FF */
                    this.innerHTML="";
                    var current=0; var selectedIndex=-1;
                    for (var i=0; i<this.allOptions.length; i++) {
                        var o = this.allOptions[i];
                        if (o && o.display) {
                            var newO=o.cloneNode(true);
                            if (document.all) {
                                if(current && o.selected) {
                                    selectedIndex=current; current=false;
                                }
                                current++;
                            }
                            this.appendChild(newO);
                        }
                    }
                    if (document.all && selectedIndex != -1) {
                        this.selectedIndex=selectedIndex;
                    }
                }
                s.hide=function(index,noRefresh) {
                    var o = this.allOptions[index];
                    if (o) {
                        o.display=false;
                        if (!(noRefresh)) {
                            this.refresh();
                        }
                        return true;
                    } else {
                        return false;
                    }
                }
                s.show=function(index,noRefresh) {
                    var o = this.allOptions[index];
                    if (o) {
                        o.display=true;
                        if (!(noRefresh)) {
                            this.refresh();
                        }
                        return true;
                    } else {
                        return false;
                    }
                }
                s.hideAll=function() {
                    for (var i=0; i<this.allOptions.length; i++) {
                        this.hide(i, true);
                    }
                    this.refresh()
                }
                s.showAll=function() {
                    for (var i=0; i<this.allOptions.length; i++) {
                        this.show(i, true);
                    }
                    this.refresh()
                }
                return s;
            }
            </script>
        </head>
        <body>
            <select>
                <option value="0">0</option>
                <option value="1">1</option>
            </select>
            <script>
            var s = makeSelect(document.getElementsByTagName("select")[0]);
            </script>
            <input type="button" value="Ajouter une option" onclick="s.allOptions.add(s.allOptions.length,s.allOptions.length)" />
        </body>
    </html>

  13. #53
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Ah mince, mon code marche pas sous IE...

  14. #54
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    joli code. Marche très bien sous firefox mais ce putain d'ie fais encore chier le peuple!! Il n'exécute pas ton code. Je vois un select avec rien dedans

  15. #55
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par Choupinou
    joli code. Marche très bien sous firefox mais ce putain d'ie fais encore chier le peuple!! Il n'exécute pas ton code. Je vois un select avec rien dedans
    Je sais pourquoi, et c'est un bug connu en plus... je suis déjà occupé de corriger

  16. #56
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    peut-être que je pourrais garder toutes mes options dans un tableau puis si une option change d'état dans le tableau alors je l'ajoute (si display=true) au select ou la supprime (si display=false). Le seul pb c'est que ce sont des données classées. Il faudrait qu'elles gardent le même ordre dans le select. Tu penses que ce serait faisable?

  17. #57
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    Ca marche nickel!! Merci beaucoup!! Plus qu'à l'intégrer à mon code

  18. #58
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    11h58 :
    Code modifé (compatible IE)
    14h51 :
    Code modifié (La selection est consérvée (si possible))
    Bug connu : IE ne prend pas en charge la sauvegarde d'une multi-selection

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. problème d'exécution sous l'invite de commande
    Par gnocki dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/11/2006, 11h43
  2. problème d'exécution de requête sous VBA?
    Par jessy212 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/08/2006, 18h48
  3. [Système] Problème d'exécution DOS sous PHP
    Par chtichokoko dans le forum Langage
    Réponses: 7
    Dernier message: 28/04/2006, 16h26
  4. problème d'exécution d'un report sous oracle 10g
    Par seure dans le forum Reports
    Réponses: 1
    Dernier message: 22/03/2006, 17h47
  5. Réponses: 5
    Dernier message: 19/04/2005, 08h50

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