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 :

Vérification select multiple [Fait]


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Vérification select multiple
    Bonjour à tous,
    J'ai cherché sur le forum mais je n'ai trouvé que des sujets proches que je ne comprends pas bien.
    Je cherche la syntaxe pour vérifier que l'utilisateur a bien saisi au moins une valeur dans un select multiple (et pas la valeur par défaut qui est juste un texte explicatif).
    Voici le formulaire (les champs affichés proviennent d'une table)

    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
    <select name='ANNEE[]' multiple="multiple">
    <option selected value="">Choisissez une ou plusieurs années</option> 
    <?php 
    $result = mysql_query("SELECT `cotisations`.`ANNEECOTISATION` 
    FROM cotisations LIMIT 0, 30 "); 
    $i=0; 
    while ($r = mysql_fetch_assoc($result)) { 
    if ($r["ANNEECOTISATION"] == $ANNEE[$i]) { 
    echo "<option value='". htmlspecialchars($r["ANNEECOTISATION"]) ."' selected='selected'>". htmlspecialchars($r["ANNEECOTISATION"]) ."</option>\n"; 
    } else { 
    echo "<option value='". htmlspecialchars($r["ANNEECOTISATION"]) ."'>" . htmlspecialchars($r["ANNEECOTISATION"]) ."</option>\n"; 
    } 
    $i++; 
    } 
    ?> 
    </select>
    Pour voir si j'arrive bien à récupérer au moins le nombre de sélections J'ai essayé ça mais ça ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var selectione=""; 
    var Num=0; 
    for (i=0; i<document.forms.form1.ANNEE.options.length; i++) { 
      if (document.forms.form1.ANNEE. options[i].selected ) { 
        Num=Number(Num+1); 
        selectione = selectione+"; "+document.forms.form1.ANNEE.options[i].text; 
      } 
    } 
    alert(Num+" choix : "+selectione); 
    }
    Désolé si la question est basique ou a déjà été posée..
    Francis
    -- édité par franculo_caoulene, merci de penser aux balises [code] --

  2. #2
    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

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Désolé, je ne l'avais pas vu ...
    J'ai donc adapté (mal ..) le script de la FAQ mais ça ne marche pas plus :
    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
    <script type="text/javascript">
    <!--
    function verif_champs()
    {
    var selectedList = new Array();
    var selectBox = document.forms[0].ANNEE; 
    for (var i=0; i<selectBox.options.length; i++) { 
      if (selectBox.options[i].selected) { 
        selectedList.push(selectBox.options[i]); 
      } 
    }
    var alertTxt = "";
    for (opt in selectedList) {
    	alertTxt += "L'option "+opt.value+" est selectionnée \n";
    }
    alert(alertTxt);
    return false;
    }
    </script>
    </head>
    <body>
    <form name="form1" method="post" onSubmit="return verif_champs()">
    <p align="center"><select name='ANNEE[]' multiple="multiple"></p>
    <option selected value="">Choisissez une ou plusieurs années</option> 
    <option>2004</option>
    <option>2005</option>
    <option>2006</option>
    </select>
    <br>
    <input type="submit" value="Insérer l'enregistrement" name="envoyer">
    </form>
    pouvez-vous me dire où est l'erreur svp ?
    -- édité par franculo_caoulene, merci de penser aux balises [code] --

  4. #4
    Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Désolé...
    Bon j'ai testé un autre script de vérif. Il marche à condition que le select name soit "ANNEE" et non "ANNEE[]". Les crochets semblent poser problème. Le souci c'est que j'en ai besoin pour déclarer que c'est un tableau lors de la transmission du formulaire.

  5. #5
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function verif_champs()
    {
    var selectedList = new Array();
    var selectBox = document.forms[0].ANNEE; 
    for (var i=0; i<selectBox.options.length; i++) { 
      if (selectBox.options[i].selected) { 
        selectedList.push(selectBox.options[i]); 
      } 
    }
    return selectedList.length>0;
    }
    Effectivement, pour l'adaptation, tu n'y avais pas mis beaucoup d'enthousiasme.....

  6. #6
    Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci DenisC
    C'est pas d'enthousiasme que je manque mais de connaissance . Ca fait un petit moment que j'essaie de trouver tout seul...
    Désolé d'insister mais ça ne fonctionne pas chez moi et je ne comprends pas tout dans cette fonction (le "push" et le "return...>0" de la dernière ligne en particulier). Pourrais-tu (ou quelqu'un d'autre) développer un peu histoire que je me couche moins bête ce soir ?

    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
    <script language="javascript">
    function verif_champs() 
    { 
    var selectedList = new Array(); 
    var selectBox = document.forms[0].ANNEE; 
    for (var i=0; i<selectBox.options.length; i++) { 
      if (selectBox.options[i].selected) { 
        selectedList.push(selectBox.options[i]); 
      } 
    } 
    return selectedList.length>0;
    }
    </script>
    </head>
     
    <body>
    <form action="" method="get" onsubmit="return verif_champs()">
    <select name="ANNEE[]" size="4" multiple>
    <option selected="selected">2004</option>
    <option>2005</option>
    <option>2006</option>
    </select>
    <input name="envoyer" type="submit" />
    </form>

Discussions similaires

  1. Select multiple
    Par lfournial dans le forum Struts 1
    Réponses: 20
    Dernier message: 24/02/2011, 12h14
  2. Vérification selection zone liste sélection multiple
    Par Nana35 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 15/11/2008, 15h43
  3. [VB6] sélection multiple de colonne dans excel grâce à VB
    Par biquet dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/08/2004, 12h44
  4. <select multiple ...>
    Par ayobo dans le forum ASP
    Réponses: 2
    Dernier message: 06/07/2004, 08h49
  5. [C#]Sauvegarde d'une selection multiple d'une listbox?
    Par onouiri dans le forum ASP.NET
    Réponses: 7
    Dernier message: 29/04/2004, 17h16

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