Controler les checkBox

Fermé
Arbitta Messages postés 76 Date d'inscription jeudi 5 mars 2015 Statut Membre Dernière intervention 16 février 2016 - 25 mars 2015 à 12:16
jordane45 Messages postés 38369 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 janvier 2025 - 26 mars 2015 à 15:16
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 38369 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 janvier 2025 4 722
25 mars 2015 à 15:20
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 jeudi 5 mars 2015 Statut Membre Dernière intervention 16 février 2016
25 mars 2015 à 16:24
ça n'a pas marché :(
0
jordane45 Messages postés 38369 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 janvier 2025 4 722 > Arbitta Messages postés 76 Date d'inscription jeudi 5 mars 2015 Statut Membre Dernière intervention 16 février 2016
25 mars 2015 à 17:52
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 jeudi 5 mars 2015 Statut Membre Dernière intervention 16 février 2016
26 mars 2015 à 14:29
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 38369 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 janvier 2025 4 722 > Arbitta Messages postés 76 Date d'inscription jeudi 5 mars 2015 Statut Membre Dernière intervention 16 février 2016
Modifié par jordane45 le 26/03/2015 à 15:16
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