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 :

Définir nombre radio à cocher


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut Définir nombre radio à cocher
    Bonjour à tous !

    Aujourd'hui, je suis confronté à un problème particulier. En effet, j'ai une liste d'éléments avec des radio button (input type = radio).

    C'est une liste qui comporte plus de 200 éléments avec des radio button, et moi je souhaiterai créer quelque chose qui permet de :

    1.Définir le nombre de Radio à cocher (ex : 50)

    2.Une fois la première tâche effectuée, on clique sur un bouton et les radio se cochent (côté utilisateur, sans rafraichissement de la page) (ex : les 50 premiers sont cochés).

    J'ai cherché un peu partout sur le net, je n'ai rien trouvé...

    En espérant avoir une aide ou une piste, ce serait génial pour mon projet !


    En vous remerciant d'avance.


    Edit : le sujet a été déplacé, donc je précise que c'est pour du PHP

  2. #2
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Bonjour,
    Cela fait un bail que je n'ai plus écrit du code php. Mais si tu as par exemple
    Code php : 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
    <?php
    echo "<table border='0'>
      <tr>
    	<td>N° ordre</td>
    	<td>Entete 01</td>
    	<td>Entete 02</td>
    	<td>Entete 03</td>
    	<td>Entete 04</td>
      </tr>";
    for($i=0;$i<4;$i++){
    echo " <tr>
    	<td>$i</td>
    	<td><input type='radio' name='monradio[$i]' value='biscuit'/></td>
    	<td><input type='radio' name='monradio[$i]' value='bonbon' /></td>
    	<td><input type='radio' name='monradio[$i]' value='yaourt' /></td>
    	<td><input type='radio' name='monradio[$i]' value='bic' /></td>
      </tr>";
      }
    echo " </table>";
    ?>
    Tu peux sur clic de ton bouton utiliser javascript pour cocher automatiquement tes radio boutons:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <SCRIPT LANGUAGE="JavaScript">
    for($i=0;$i<4;$i++){
    {
     document.forms["nomdemonform"].monradio[i].checked = true;
    }
    </SCRIPT>

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Salut et merci pour ta réponse !

    N'ayant jamais fait de javascript, je comprends quand même le C++.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <SCRIPT LANGUAGE="JavaScript">
    for($i=0;$i<4;$i++){
    {
     document.forms["nomdemonform"].monradio[i].checked = true;
    }
    </SCRIPT>
    Donc je comprends bien, le 4 correspond au nombre de cases à cocher (ce qui est parfait si j'utilise une variable !).

    Cependant, où se trouve ce fameux bouton ? l'as-tu inclus dans ton code ci dessus ? Je suppose qu'en javascript il doit y avoir une syntaxe particulière

  4. #4
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    formulaire dynamique ajax

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    J'ai cherché, mais je n'ai pas trouvé surtout que je ne connais pas trop javascript ajax

    Mais l'exemple du dessus est très parlant ! Juste trouver comment créer ce bouton ensuite j'essaye de manipuler ça.

  6. #6
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Bah! c'est tout simple. Dans ton formulaire, tu mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" name="Cocher" value="Cliquez pour cocher" onclick="CocherMesRadio();" />
    Puis en tu écris ta fonctions javascript comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
    function CocherMesRadio() {
    for($i=0;$i<4;$i++){
    {
     document.forms["nomdemonform"].monradio[i].checked = true;
    }
    }
    </script>

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Par défaut
    Bonjour,

    Tu veux cocher plusieurs boutons radio d'un même groupe en même temps ? Dans un groupe de boutons radio, un seul bouton radio est coché, et en cocher un, décoche tous les autres. Sinon, ce sont des checkboxes qu'il faut que tu utilises.

    Pour répondre à ta dernière question, il faut que tu ajoutes un bouton dans ton code HTML. À la fin du chargement de la page, tu vas ajouter (en javascript) un handler d'événement "click" sur le bouton qui appellera la fonction de coche des n premières cases.

    Par exemple :

    Code html : 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
    <!DOCTYPE html>
    <html>
    <head>
     
    <script>
    //<!--
     
    function checkBoxes() {
     
      var nbCheckBoxes = 2;
      
      var allInputs = document.getElementsByTagName('input');
      for (i = 0; i < allInputs.length && i < nbCheckBoxes; i++) {
        if (allInputs[i].type == 'checkbox') {
          allInputs[i].checked = true;
        }
      }
    }
     
    window.onload = function() {
     
      document.getElementById("checkButton").addEventListener("click", checkBoxes, false);
    };
     
    //-->
    </script>
     
     
    </head>
     
    <body>
      <form id="myForm" name="myForm">
        <button type="button" id="checkButton">Cocher les 2 premières cases</button>
        <input type="checkbox" value="value1" />
        <input type="checkbox" value="value2" />
        <input type="checkbox" value="value3" />
        <input type="checkbox" value="value4" />
        <input type="checkbox" value="value5" />
      </form>
    </body>
    </html>

    EDIT : la méthode de Callo fonctionne aussi, personnellement je préfère juste séparer les appels au javascript et la structure HTML.

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Merci à vous ! Je ferai des tests, et vous tiendrai au courant !!!

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Juste une question, ton formulaire permet de cocher deux cases. Mais si ce nombre de case je souhaite le définir (par une liste déroulante par exemple, avec la possibilité de choisir un nombre entre 1 et 100), comment puis-je faire ?

    Exemple :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name="nombre">
    <option value="1"> 1 </option>
    <option value="2"> 2 </option>
    <option value="3"> 3 </option>
    <option value="23">4 </option>
    </select>
     
    <button type="button" id="checkButton">

    Il faut que je mette en relation le bouton avec la liste déroulante, comment puis-je faire ?
    (Veuillez m'excuser d'avance si cette fonctionnalité vous parait simple, je ne suis pas un expert en javascript loin de la)

    En vous remerciant d'avance.

  10. #10
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select name="nombre" id="nombre">
    <option value="1"> 1 </option>
    <option value="2"> 2 </option>
    <option value="3"> 3 </option>
    <option value="4">4 </option>
    <!.. ...............................  ..>
    <option value="100">100</option>
     
    </select>
    Si tu veux, tu peux utiliser un boucle for pour créer dynamiquement les valeurs du select.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
    function checkBoxes() {
     var selectNumberItem = document.getElementById("nombre");
     var valeurNbreselectionne = selectNumberItem.options[selectNumberItem.selectedIndex].value;
     var nbCheckBoxes = valeurNbreselectionne;
     // .....
    }
    </script>

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Merci beaucoup Callo ça marche à merveille !!!

    Par contre il y a un truc qui ne va pas, par exemple quand je clique une fois sur 4 par exemple (4 cases qui se cochent), et que je clique sur 2 après, les 4 restent cochés.

    Faut-il que je fasse une autre boucle FOR en la plaçant tout au début en mettant Checked = false ?

    Par contre faudra parcourir tous les input :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (i = 0; i < allInputs.length; i++)
    est-ce suffisant ?

    Edit : Après test, ca fonctionne très bien !

  12. #12
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    tu peux parcourir toute la liste est ne cocher que suivant le cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      for (i = 0; i < allInputs.length; i++) {
        if (allInputs[i].type == 'checkbox') {
          allInputs[i].checked = i< nbCheckBoxes ? true :false;
        }
      }

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     allInputs[i].checked = (i< nbCheckBoxes);
    typiquement pas besoin du ternaire
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  14. #14
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    allInputs[i].checked = i< nbCheckBoxes;
    Ni de parenthèses d'ailleurs.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  15. #15
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Oh merci cool ça fonctionne à merveille !!!

    Maintenant que je l'ai essayé et testé sur une page vide, je vais donc l'inclure sur une application existante.

    Cependant, j'ai une erreur particulière :

    Uncaught TypeError: Cannot call method 'addEventListener' of null
    Savez-vous à quoi correspond cette erreur ? Juste pour information, le script est bien situé entre les balises <head>, c'est l'outil de développement de Chrome qui me sort cette erreur...

    Je vous remet mon script :

    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
    function checkBoxes() {
     var selectNumberItem = document.getElementById("nombre");
     var valeurNbreselectionne = selectNumberItem.options[selectNumberItem.selectedIndex].value;
     var nbCheckBoxes = valeurNbreselectionne;
     
     var allInputs = document.getElementsByTagName('input');
     
     for (i = 0; i < allInputs.length; i++) {
        if (allInputs[i].type == 'checkbox') {
          allInputs[i].checked = false;
        }
      }
     
     
      for (i = 0; i < allInputs.length && i < nbCheckBoxes; i++) {
        if (allInputs[i].type == 'checkbox') {
          allInputs[i].checked = true;
        }
      }
    }
     
    window.onload = function() {
     
      document.getElementById("checkButton").addEventListener("click", checkBoxes, false);
    }
    En vous remerciant d'avance.

    Edit : L'erreur vient plus précisément du window.onload apparemment.

  16. #16
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Pourquoi faire 2 boucles alors qu'une est suffisante ?

    Il faut penser à ajouter un compteur de checkbox attendu que l'on récupère TOUS les <input>.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      for(i=0, k=0; i<allInputs.length; i++) {
        if (allInputs[i].type == 'checkbox'){
          allInputs[i].checked = k++< nbCheckBoxes;
        }
      }
    ( voilà en moins de 140 caractères )

    Pour le soucis de addEventListener c'est surement que tu utilises une version IE <9.

    Si tu n'a rien d'autre à mettre sur le bouton, tu peux mettre simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.onload = function() {
      document.getElementById("checkButton").onclick = checkBoxes;
    }

  17. #17
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Salut et merci pour ta réponse.

    Ca ne marche toujours pas, il y a une autre erreur :

    Uncaught TypeError: Cannot set property 'onclick' of null
    Pourtant je n'utilise pas du tout IE, j'utilise firefox et chrome parallèlement

    Une idée pour cette erreur aussi ?

  18. #18
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Uncaught TypeError: Cannot set property 'onclick' of null
    tu n'as pas dans ton document HTML d'élément qui possède comme ID checkButton

  19. #19
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Si je l'ai dans mon Button justement

    http://&#91;IMG]http://imageshack.us/pho....jpg&#91;/IMG]

    Nous voyons bien mon javascript (PJ 1)

    http://imageshack.us/photo/my-images/838/epj9.jpg

    Ici nous voyons bien mon button avec l'ID bien renseigné. On voit également la liste déroulante en dessous, ainsi que le checkbox juste après (PJ 2)

    http://imageshack.us/photo/my-images/41/cju4.jpg/

    Et là nous avons l'erreur ! (PJ 3)

    Je pense ne rien avoir oublié, je trouve très étrange que ça ne fonctionne pas


    edit : Les images ne veulent pas s'afficher (balise IMG), j'ai mit le lien directement

    edit 2 : utilisation des PJ (pratique !)
    Images attachées Images attachées    

  20. #20
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Je pense ne rien avoir oublié
    Si... les images !

    Tu ferais mieux d'utiliser les pièces jointes d'ailleurs (l'icône en forme de trombone dans l'éditeur)...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. Définir nombre de lignes par page dans GridView
    Par majduuus dans le forum ASP.NET
    Réponses: 2
    Dernier message: 11/09/2013, 15h01
  2. Problème de double radio (cocher une case à la fois)
    Par kOrt3x dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 16/06/2009, 14h32
  3. [html:radio] cocher / décocher
    Par fatenatwork dans le forum Struts 1
    Réponses: 7
    Dernier message: 09/10/2007, 11h43
  4. Bouton radio à cocher
    Par Soria17 dans le forum ASP
    Réponses: 8
    Dernier message: 20/02/2007, 16h31
  5. définir nombre de décimale
    Par capone dans le forum C++Builder
    Réponses: 5
    Dernier message: 08/01/2006, 14h15

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