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 de la selection multiple


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Par défaut Problème de la selection multiple
    Bonjour,

    Mon problème se situe au niveau d'une combobox qui est à la base en selection simple et que je transforme par une fonction javascript en selection multiple (voilà pour faire très simple... mais attention ça se corce )

    En fait la fonction javascript s'effectue juste avant le submit() de la page en question, car le but de la manoeuvre est de transformer la combobox en multiple=true de selectionner toute la combobox et de récupérer toute cette sélection dans le code PHP qui suivra le submit.

    Pour ce qui est de la récupération de la combobox en PHP tout est OK le seul problème que j'ai viendrai du code "combobox.multiple=true" !! Car après de nombreux tests je me suis aperçu que ce bout de code n'était pas pris en charge assez rapidement!!! En claire après avoir transformer la combobox en selection multiple celle-ci n'est pas directement efficace!! Et la fonction javascript qui suit afin de tout selectionner dans la combobox ne selectionne qu'un seul index !!!

    La seul parade que j'ai trouvé c'est juste après avoir transformé la combobox en selection multiple si je fais une pause du genre une ALERT() la combobox devient bien une selection multiple et je peux tout selectionner à l'interieur de celle-ci!

    Bref voilà un bout de code explicatif!


    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
     
     
    function allselect()
    {
    var objetListe = document.getElementById('ns');
    for (i = 1 ; i < objetListe.options.length; i++) 
       {
           objetListe.options[i].selected = true;
       }
    }
     
     
    function selectListe() 
    {
       var objetListe = document.getElementById('ns'); //la combobox en question
       objetListe.size=1;
       objetListe.multiple = true;//je la met en selection multiple
       // si je place une alert(""); ici le code s'effectuera comme il faut !!!
       allselect();//j'appelle le script pour tout sélectionner
     
    }

    PLEASE HELP ME

  2. #2
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Par défaut
    comme je sais très bien que mon charabia du dessus n'est pas très compréhensible vu mon niveau d'expression je vous passe un petit code d'une page pour que vous puissiez la tester et vous vous apercevrez très vite ou est le problème!!

    Vous n'avez qu'a tester 1 fois avec et 1 fois sans les balises de commentaire devant l'alert() dans la fonction selectListe() pour comprendre la différence!!

    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
     
     
    <html>
    <head>
    <script>
    function allselect()
    {
    var objetListe = document.getElementById('ns');
    for (i = 1 ; i < objetListe.options.length; i++) 
       {
           objetListe.options[i].selected = true;
       }
    }
     
     
    function selectListe() 
    {
       var objetListe = document.getElementById('ns');
       objetListe.size=6;
       objetListe.multiple = true;
       //alert("et hops magie après cette alert le code fonctionne !!");
       allselect();
     
    }
    </script>
    </head>
    <body>
    <form>
    <select name=s1 id='ns' >
    <option></option>
    <option selected >01</option>
    <option>02</option>
    <option>03</option>
    <option>04</option>
    </select>
     
    <input type=button onclick=selectListe() name=button value="select" >
     
     
    </form>
    </body>
    </html>
    Merci de votre aide!

  3. #3
    Expert confirmé

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut Re: Problème de la selection multiple
    Citation Envoyé par Muushi
    En fait la fonction javascript s'effectue juste avant le submit() de la page en question, car le but de la manoeuvre est de transformer la combobox en multiple=true de selectionner toute la combobox
    Euh, pourquoi faire?

    Franchement, sur le fond, j'ai du mal à voir ce à quoi ça peut servir? Tu peux nous donner une idée plus claire de ce que tu cherches à faire? Parceque proposer un select à l'utilisateur, qui'il choississe ce qu'il veut, et que juste avant de soumettre le formulaire, tu selectionnes tout, ça parait assez débile

    Mais il doit y avoir une explication

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Par défaut
    Bien sur qu'il y a une expliquation et d'ailleurs je m'attendais à une remarque du genre...

    En faite il faut visualiser les numéros de la combobox comme des numéros de semaines. Il y a également une deuxième combobox avec c même numéros de semaine pour que l'utilisateur puisse sélectionner une période.
    par exemple:
    l'utilisateur sélectionne une période de la semaine "01" (sélectionné avec la première combo) à la semaine "03" (sélectionné avec la deuxième combo)

    une fois ces deux sélections faites elles sont sauvegardées!
    Et après pour récupérer la période j'aimerai récupérer tout une combo et je traiterais que les semaines comprisent entre les deux sélections!

    VOilàVoilà... et si vous avez tout bien compris j'ajouterai ne me proposez pas de faire une boucle entre les 2 selections car il est possible qu'il y est des semaines inéxistante!!! par exemple dans l'exemple précédent il est possible que la semaine 02 n'existe pas!

    Je sait pas si tout cela peut vous éclairer mais si vous avez quelquechose pour passer résoudre le problème javascript je suis preneur sinon g déjà d'autre solution pour passer outre mais qui me plaise bien moin !!!

    Merci

  5. #5
    Expert confirmé 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
    Par défaut
    A mon avis tu devrais gérer tout ca coté serveur.
    Si tu génère tes combos, tu sais quelles valeurs sont dedans d'une page à une autre.
    Je ne vois pas le problème ensuite pour traiter ta plage....
    Plus propre, plus simple.

    Et quid du client n'a pas de js activé ?

  6. #6
    Membre émérite
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Par défaut
    Salut,
    Tu connais les semaines inexistantes ?
    pourquoi ne pas faire une seule liste a selection multiple qui te fourni les extremum de ta période ? tu récupères les toutes les semaines entre les deux selections
    tu as juste a tester si l'utilisateur n'en selectionne pas plus de 2 et lors de ton traitement tu supprimes les semaines inexistantes.

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Par défaut
    Oui Pymm j'avais bien pensé à ça et j'allais le faire si je ne trouvais pas d'autre solution. Mais Comme l'a dit Mr. N je vais gérer ça côté serveur ça sera bien plus simpe (je l'espère )

    Bref je voulais aussi savoir par curiosité si quelqu'un avait palié ce petit BUG de Javascript!!


    Merci encore à tous

  8. #8
    Membre très actif
    Homme Profil pro
    PDG
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PDG
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut
    Je me demande si tu ne peux pas résoudre ton problème par un .focus() sur ta combobox ?

Discussions similaires

  1. Problème sur les selects multiples
    Par Nag_Champa dans le forum Langage
    Réponses: 4
    Dernier message: 15/12/2006, 16h02
  2. Problème de récupération de valeur d'un select multiple
    Par poissonsoluble dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 30/11/2006, 09h37
  3. Problème avec un "select multiple" et POST
    Par crazydiver_e2 dans le forum Langage
    Réponses: 2
    Dernier message: 09/06/2006, 15h54
  4. Problème tri tutoriel selection multiple
    Par qbihlmaier dans le forum Access
    Réponses: 24
    Dernier message: 14/03/2006, 11h24
  5. Problème entre 2 listbox à selection multiple
    Par SoaB dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 24/10/2005, 16h05

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