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 :

pb sur le résultat d'une sélection(up!)


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut pb sur le résultat d'une sélection(up!)
    Bonsoir je reposte d'une autre facon ma question (mal formulée?) sur un devoir que j'ai à rendre:
    J'ai crée un formulaire avec une sélection: soit ECO soit LIBERTE
    Si ECO ne sélectionner qu'une seule activité si LIBERTE plusieurs peuvent etre coché, j'ai essayé de faire cela avec ce code 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    </head>
      <body>
     
    <h1>Inscription au centre sportif</h1>
     
     
    <div class="col1">
    <form name="form" method="post"  onsubmit="return verif_entr()">
     
     
     <fieldset>
     <legend>Vos coordonn&eacute;es</legend>
     
      Nom:
      <input type ="text" name="nom"  VALUE="" size="25">
     <br>
      Adresse:
      <input type ="text" name="adresse"  VALUE="" size="50">
    </fieldset>
     
      <fieldset>
      <legend>Choix du forfait:</legend>
     
      <select name="forfait"VALUE="">
       <option VALUE="option1">-Sélectionner votre forfait-</option>
       <option name="eco" VALUE="" >ECO: Une activit&eacute; hebdomadaire (100 euros)</option>
       <option>LIBERTE: Activit&eacute;s &agrave; volont&eacute; (300 Euros)</option>
      </select>
      </fieldset>
     
      <fieldset>
     
     <legend> Choix des activit&eacute;s:</legend>
      <input type="checkbox" name="activite1" onclick="return v_eco()" >Fitness<br>
      <input type="checkbox" name="activite2" onclick="return v_eco()">Gym Douce<br>
      <input type="checkbox" name="activite3" onclick="return v_eco()" >Stretching<br>
      <input type="checkbox" name="activite4" onclick="return v_eco()" >Gym Aquatique<br>
      <input type="checkbox" name="activite5" onclick="return v_eco()" >Abdos<br>
      <input type="checkbox" name="activite6" onclick="return v_eco()">Dance<br>
      </fieldset>
     
     
      <p>
      <input type="submit" name= "bout" value="valider" onclick="return confirm('Voulez-vous envoyer cette réservation?');">
     
      </p>
     
    </a>
      </div>
     
      </form>
      </body>
    Puis avec le fichiers javascript suivant:
    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
     
      function verif_entr()
     {
    if((document.forms.form.nom.value == "")||(document.forms.form.adresse.value == ""))  {
       alert("Veuillez remplir tous les champs svp!");
       document.form.nom.focus();
       return false;
      }
      else return true;
     } 
     function v_eco(){
    if(document.forms.form.eco.value == "")  {
     
    if (document.forms.activite1.checked){
    o1 = 1
    }
    else{
    o1 = 0
    }
     if (document.form.activite2.checked){
    o2 = 1
    }
    else{
    o2 = 0
    }
    if (document.form.activite3.checked){
    o3 = 1
    }
    else{
    o3 = 0
    }
     if (document.form.activite4.checked){
    o4 = 1
    }
    else{
    o4 = 0
    }
     if (document.form.activite5.checked){
    o5 = 1
    }
    else{
    o5 = 0
    }
     if (document.form.activite6.checked){
    o6 = 1
    }
    else{
    o6 = 0
    }
     total = Number(o1) + Number(o2) + Number(o3) + Number(o4)+Number(o5)+Number(o6)
     if (total > 1){
    alert("maximum un choix")
    }
     }
    }
    Mais cela ne fonctionne pas!
    J'ai pensé à un bouton radio si la sélection est ECO puisqu'à priori avec les boutons radio un seul doit etre coché, qu'en pensez vous?
    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Prends ça comme exemple. Cela fait ce que tu souhaites, mais au strict minimum.

    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 check (e) {
      var sels = document.getElementsByName('selection');
      var max = sels[0].checked ? 1 : -1;
      var cb;
      var cpt = 0;
      for (var i = 1; true; i++) {
        cb = document.getElementsByName('act' + i);
        if (!cb[0])
          break;
        cpt += cb[0].checked ? 1 : 0;
      }
      if (max >=0 && cpt > max)
        alert('Un seul choix, svp.');
    }
     
        </script>
      </head>
      <body>
        <form>
          <input type="radio" name="selection" value="eco" checked>ECO</input><br />
          <input type="radio" name="selection" value="liberte">Liberté</input><br />
          <input type="checkbox" name="act1" onclick="check();">Activité 5</input>
          <input type="checkbox" name="act2" onclick="check();">Activité 5</input>
          <input type="checkbox" name="act3" onclick="check();">Activité 5</input>
          <input type="checkbox" name="act4" onclick="check();">Activité 4</input>
          <input type="checkbox" name="act5" onclick="check();">Activité 5</input>
        </form>
      </body>
    </html>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    dingoth merci pour la formule magique!
    Cependant je ne comprend pas bien ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function check (e) {
      var sels = document.getElementsByName('selection');
      var max = sels[0].checked ? 1 : -1;
    peut tu m'expliquer svp?
    Merci

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Eh bien, je récupère les éléments HTML ayant comme nom (name) 'selection', c'est à dire les deux boutons radio. De ces deux éléments, je prends le premier, et s'il est sélectionné, je donne une valeur maximale de sélections d'activités. Il se trouve que j'ai décidé (selon tes paramètres) de mettre le maximum à 1. S'il n'est pas sélectionné, je donne une valeur par défaut que j'ai déclaré être -1. Plus loin, dans le code, je vérifie si la valeur maximale est une valeur donnée ou la valeur par défaut. Si c'est une valeur donnée, je tolère max éléments sélectionnés, sinon, j'en tolère autant que je veux.

    En espérant que cela soit plus clair ^_^

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    Merci dingoth chapeau pour ton code!
    j'avoue que je n'ai pas encore totalement compris car je débute mais j'ai saisi le principe.
    @++

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

Discussions similaires

  1. [Etat] Basé sur le résultat d'une requête
    Par Pascal26 dans le forum WinDev
    Réponses: 13
    Dernier message: 12/04/2007, 09h04
  2. Réponses: 11
    Dernier message: 11/08/2006, 16h52
  3. Réponses: 5
    Dernier message: 04/07/2006, 11h19
  4. Réponses: 3
    Dernier message: 11/01/2006, 18h35
  5. [Firebird] DELETE sur le résultat d'une requete d'un IBQUERY
    Par shashark dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/06/2005, 18h17

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