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 entre 2 listbox à selection multiple


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut Problème entre 2 listbox à selection multiple
    Bonjour à tous,

    Voila j'ai une fenetre avec une liste à selection multiple. à coté de cette liste j'ai une petite image qui amène sur une popup permettant d'alimenter cette liste.

    Dans la popup se trouve une liste qui contient plein de clé/valeur et je dois transvaser de la popup vers la fenêtre parent.

    Ceci n'est pas bien compliqué en théorie je l'ai déja fait 9482309 fois dans la même fenêtre.

    Mais d'une fenetre fille à une fenêtre parent, le code génère une erreur sur la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    to.options[to.options.length] = new Option(from.options[i].text);
    to est un getElement sur la listbox de la popup (page contenant le javascript)
    et From est un getElement sur la listbox de la fenetre parent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    from= document.getElementById('lstKeywordsID');
    to= window.opener.document.getElementById('<%=listToModify%>');
    from et to sont bien affectés mais quand je lance le script pour insérer les valeurs d'une liste à l'autre il me sort une erreur javascript "Le serveur a généré une exception"

    Et quand je ferme la fenêtre de détails des erreurs javascript,IE plante aléatoirement avec "IE a généré une erreur et va se fermer".


    Sauriez vous pourquoi ?

    En vous remerciant

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Sans me pencher plus sur ton problème, je te conseille vivement d'utiliser la console de Firefox qui est bien plus explicite que celle de IE !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    lol installer FireFox juste pour voir le message d'erreur d'I.E, ca me ferait bien rigoler

  4. #4
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Ca n'as rien de bien rigolo, il t'explique simplement que ton JS genere contient des erreurs (sans doutes, a premiere vue du moins) probablement egalement visibles sous ff. Comme tant que tu n'as pas installe le .net, IE est une veritable quiche en matiere de debuggage, tu est mal barre pour y arriver sans un outil de debuggage valable qui te permet de visualiser ton code et ff est tout a fait adapte Apres, si sous ff tu n'as pas d'erreur et que ton code genere est correct, il faudra regarder pourquoi ie te dit qu'il ne l'est pas et nous poster ton code JS et non pas l'asp
    ++
    Fred.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    Donc le code sous FireFox 1.0 fonctionne bien :s

    Put*** d'IE

    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
     
    function InsererMot() {
     
    			from	= document.getElementById('lstKeywordsID');
    			to		= window.opener.document.getElementById('<%=listToModify%>');
     
    			if (from.type != 'select-multiple' || to.type != 'select-multiple') {
    				return false;
    			}
     
    			len = from.options.length - 1;
    			for (i = len; i >= 0; i--) {
    				if (from.options[i].selected) {
    					to.options[to.options.length] = new Option(from.options[i].text);
    					from.options[i] = null;
    				}
    			}
    			return true;
     
    		}

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par SoaB
    lol installer FireFox juste pour voir le message d'erreur d'I.E, ca me ferait bien rigoler
    Et bien rigole !
    Sinon tu peux aussi l'utiliser pour aller sur le net, comme tout navigateur
    Sans rentrer dans le vieux débat IE/Fx, le petit panda de feu est un véritable outil de développement comparé à la daube IE...
    Fx + WebDeveloperToolbar + Console Javascript + Inspecteur Dom + Javascript Debugger

  7. #7
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    MDR, je me repete, qu'y a-t-il comme source dans ta fenetre, c.a.d quelle valeur pour
    et quel est le code HTML de tes listes (popup et non popup).
    ++
    Fred.

    PS: ceci dit, p1 d'IE, tu as parfaitement raison Et encore, tu n'as pas connu les versions anterieures a la 4

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut


    Sisi j'ai connu bien avant la 4...

    Ne t'inquiète pas pour le code, c'est bon, je ne suis pas une quiche ... Le code fonctionne sur FireFox et il fonctionne dans I.E dans la meme page.

    C'est juste quand les 2 sont dans 2 pages différentes.

    le code d'appel à la popup est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.open('mapage.asp','popup','width=XXX,height=YYY');

  9. #9
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Je ne conteste pas que ton code fonctionne sur la meme page, seulement comment veux tu qu'on debugge qq chose sans en avoir l'exact contenu. Tu nous donne 1 page ASP et tu nous dit que le JS fonctionne, je ne demande qu'a te croire, mais comment t'aider dans ce cas ? Si je te dit
    J'ai un code JS qui ne fonctionne pas sous ff mais marche sous ie
    en te postant 1/4 des informations sur ce code, et ce dans un language qui n'est pas celui qui plante, tu crois vraiment que tu va pouvoir m'aider ? Mets toi a notre place...
    Il y a selon toute evidence une erreur pour i.e. (meme si ff arrive a interpreter correctement le truc) J'ai deja fait plusieurs fois ce genre de code et il fonctionne, ce qui doit sans doutes perturber IE est le nom de ton champ et/ou les parametres d'appels et si tu ne nous les donnes pas, comment veux-tu qu'on les invente ?
    ++
    Fred.

  10. #10
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par SoaB
    je ne suis pas une quiche ...
    Et pourtant tu as des erreurs...

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    I.E génère une erreur c'est différent

    Si il y a erreur de ma part, c'est que tu as vu une erreur dans le code, donc indique le moi car personnellement je ne vois pas. De plus c'est un code que j'ai déja utilisé dans plusieurs sites mais toujours dans la même page.

    De plus c'est un code qui fonctionne sur FireFox...

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    Citation Envoyé par fred777888999
    Je ne conteste pas que ton code fonctionne sur la meme page, seulement comment veux tu qu'on debugge qq chose sans en avoir l'exact contenu. Tu nous donne 1 page ASP et tu nous dit que le JS fonctionne, je ne demande qu'a te croire, mais comment t'aider dans ce cas ?
    Mais attendez ... ou vous avez vu que j'ai filé du code ASP ?

    J'ai filé du code JavaScript avec juste un petit bout de ASP qui fout une valeur dans le code javascript.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.opener.document.getElementById('lstKeyWordsID');
    Voila le code javascript généré par "mon code ASP" ...
    Si grâce à ca vous savez maintenant pourquoi il y a une erreur généré par le serveur ... merci de votre aide.

  13. #13
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    On a besoin de plus d'infos... Tu aurais pas un exemple en ligne pour que voie ça ?
    Ou alors poste nous le code de l'opener et de la popup

  14. #14
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par SoaB
    Mais attendez ... ou vous avez vu que j'ai filé du code ASP ?
    J'ai filé du code JavaScript avec juste un petit bout de ASP qui fout une valeur dans le code javascript.
    Les mots commencent a me manquer.... Si tu veux qu'on debugge du JS, il faut nous donner le code JS et le HTML qui va avec, ce n'est quand meme pas si complique...
    Si tu veux qu'on debugge de l'asp, tu n'est pas dans le bon forum, mais les infos 'mon code fonctionne sauf qu'il plante', ca aide pas des masses.
    Perso je n'ai aucune idee du contenu de ta variable 'listToModify' et je ne vois pas comment je pourrai le deviner, pas plus que je ne peux deviner le HTML que tu utilise toi (oui, je sais en ecrire qui fonctionnera, mais je ne vois pas comment je peux en deduire que ce sera le meme que le tien, il y a meme 99 chances sur 100 pour que ca ne soit pas le cas).
    ++
    Fred.

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    ....

    Page Appelante :

    HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <select multiple name="lstKeywords" id="lstKeywordsID" style="width:200px" ></select>
    <img src="./images/loupe.gif" title="Ajouter des mots clés" onClick="window.open('motscles.asp?listeID=lstKeywordsID','keywords','width=300,height=300,status=yes')">
    Page appelée (motscles.asp) :

    HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select id="lstKeywordsID" multiple name="lstKeywords" style="width:100%"></select>
    Javascript :
    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
     
    function InsererMot() {
     
    			from	= document.getElementById('lstKeywordsID');
     
    			to		= window.opener.document.getElementById('<%=listToModify%>');
     
     
     
    			len = from.options.length - 1;
    			for (i = len; i >= 0; i--) {
    				if (from.options[i].selected) {
    					to.options[to.options.length] = new Option(from.options[i].text);
    					from.options[i] = null;
    				}
    			}
    			return true;
     
    		}

  16. #16
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Je viens de tester ceci :
    popup.html :
    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
    <html>
    <head>
    <script>
    function InsererMot() {
     
             from   = document.getElementById('lstKeywordsID');
     
             to      = window.opener.document.getElementById('lstKeywordsID');
     
     
             len = from.options.length - 1;
             for (i = len; i >= 0; i--) {
                if (from.options[i].selected) {
                   to.options[to.options.length] = new Option(from.options[i].text);
                   from.options[i] = null;
                }
             }
             return true;
     
          } 
    </script>
    </head>
    <body>
     
    <select id="lstKeywordsID" multiple name="lstKeywords" style="width:100%">
    <option value="1">Test 1</option>
    <option value="2">Test 2</option>
    <option value="3">Test 3</option>
    <option value="4">Test 4</option>
    </select>
    <button onclick="InsererMot();">test</button>
    </body>
    </html>
    main.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>
    <head>
     
    </head>
    <body>
     
    <select multiple name="lstKeywords" id="lstKeywordsID" style="width:200px" ></select>
    <img src="./images/loupe.gif" title="Ajouter des mots clés" onClick="window.open('popup.html?listeID=lstKeywordsID','keywords','width=300,height=300,status=yes')">
     
    </body>
    </html>

  17. #17
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    ...et ca marche !

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    C'est étonnant car sur 3 machines sous I.E cela ne marche pas dont 2 avec 2 versions différentes ...

  19. #19
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    J'ai oublié de précisé: je suis sous Fx

    EDIT: Au temps pour moi, ton problême c'est IE et je te donne un code que pour Fx....

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut


    Oui sous FF ca marche bien, je confirme.

Discussions similaires

  1. [XL-2000] Problème combobox doublons et selection multiple
    Par Hellhand dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/08/2012, 09h54
  2. listbox selection multiple VB
    Par jcl49 dans le forum VB.NET
    Réponses: 11
    Dernier message: 19/05/2011, 09h51
  3. ListBox, selection multiple
    Par Arnard dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 13/05/2011, 14h18
  4. récupérer valeur listbox selection multiple
    Par titou624 dans le forum C#
    Réponses: 9
    Dernier message: 18/05/2010, 09h09
  5. vb.net: problème entre checkedlistbox/listbox
    Par 1coni dans le forum Windows Forms
    Réponses: 8
    Dernier message: 29/05/2006, 16h06

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