Controler les checkBox

Arbitta Messages postés 84 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
bonjour à tous ,
Eh oui c moi encore !! :D
j'ai ce formulaire qui contient des checkbox. Lorsque je Click sur le premier checkbox alors tous les autre serons automatiquement coché.


<form name="f1" action="TestPack1.php" method="POST">
<input type="checkbox" name="check1" onClick="myFunction()"> tous les checkbox
<input type="checkbox" name="check2">checkbox2
<input type="checkbox" name="check3"> checkbox3
<input type="checkbox" name="check4"> checkbox4
</form>

code javaScript:

<script language="JavaScript">
function myFunction() {
var x = document.getElementsByName("check1");
var i;
for (i = 0; i < x.length; i++) {
if (x[i].type == "checkbox"){
x[i].checked = true;
} }}
</script>

Je veux faire le contraire : si je décoche la première checkbox alors les autres serons décoché automatiquement . Quelqu'un peut m'aider s'il vous plait.
Merci.

1 réponse

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Tu as remarqué que ton code actuel ne fonctionnait pas
    ni pour cocher... ni pour décocher ??

    Donc.. il faut :
    - Modifier ton HTML
    - Modifier ton Script JS

    Voila :
    
    <script type="text/javascript">
    function myFunction(chk) {
        var x = document.getElementsByName("checkx");
        var i;
        for (i = 0; i < x.length; i++) {
          if (x[i].type == "checkbox"){
              x[i].checked = chk;
    		  } 
        }
     }
    </script>
    <form name="f1" action="TestPack1.php" method="POST">
       <input type="checkbox" name="check1" onClick="myFunction(this.checked)">  tous les checkbox
      <input type="checkbox" name="checkx">checkbox2  
      <input type="checkbox" name="checkx"> checkbox3 
      <input type="checkbox" name="checkx"> checkbox4
    </form>
    
    

    0
    1. Arbitta Messages postés 84 Statut Membre
       
      ça n'a pas marché :(
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Arbitta Messages postés 84 Statut Membre
         
        Comment ça.... ça n'a pas marché ??
        ça fonctionne parfaitement chez moi sur tous mes navigateurs
        Montres moi ce que tu as écris comme code .
        0
    2. Arbitta Messages postés 84 Statut Membre
       
      ton code marche mais ce n'est pas ce que je veut exactement(je ne veut pas que le nom des checkbox soit le mémé.).
      Regarde ma page testPack1.php

      <?php
      if (isset($_POST['check1']))
      {include("Analys1.php");}
      if (isset($_POST['check2']))
      {include("Analyse2.php");}
      if (isset($_POST['check3']))
      {include("Analyse4.php");}
      if (isset($_POST['']))
      { echo "Vous Devez Cochez Au Moin Une Case"; }
      ?>

      chaque case à cochée à sa propre page php qui sera affiché et si je met tous les case à cohé du méme nom alos ça me posera un probléme lors de mon appel dans testpack1.php.
      Merci.
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Arbitta Messages postés 84 Statut Membre
         
        Pour récupérer toutes les checkbox sans s'occuper de savoir combien tu en auras....
        tu dois mettre le même nom pour constituer un ARRAY de checkbox.
        Ensuite.. c'est uniquement via leur VALUE que tu sais de laquelle il s'agit !
        par exemple...

        <script type="text/javascript">
        function myFunction(chk) {
            var x = document.getElementsByName("checkx[]");
            var i;
            for (i = 0; i < x.length; i++) {
              if (x[i].type == "checkbox"){
                  x[i].checked = chk;
            } 
            }
         }
        </script>
        <form name="f1" action="TestPack1.php" method="POST">
           <input type="checkbox" name="check1" value="Analyse1.php"> onClick="myFunction(this.checked)">  tous les checkbox
          <input type="checkbox" name="checkx[]" value="Analyse2.php">checkbox2  
          <input type="checkbox" name="checkx[]"value="Analyse3.php"> checkbox3 
          <input type="checkbox" name="checkx[]"value="Analyse4.php"> checkbox4
        </form>
        


        et dans la page PHP
        if (isset($_POST['check1'])){
          include $_POST['check1'];
        }
        if(isset($_POST['checkx'])){
         foreach($_POST['checkx'] as $k=>$CHK){
          include $CHK;
         }
        }
        
        0