Controler les checkBox

Arbitta Messages postés 76 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Arbitta Messages postés 76 Date d'inscription   Statut Membre Dernière intervention  
 
ça n'a pas marché :(
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Arbitta Messages postés 76 Date d'inscription   Statut Membre Dernière intervention  
 
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
Arbitta Messages postés 76 Date d'inscription   Statut Membre Dernière intervention  
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Arbitta Messages postés 76 Date d'inscription   Statut Membre Dernière intervention  
 
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