coher une partie de chexkbox

coher une partie de chexkbox - PHP - Programmation

Marsh Posté le 19-08-2010 à 12:04:07    

Bonjour, tt le monde
 
voici mon formulaire, mon pb que je veux que mon checkbox (tout cocher) me permet de cocher tout les autres checkbox sauf les deux premiers a1 et a2
 
je ne réussi pas  merci d'avance pour votre aide
<form name='form1'...>
<input type='checkbox' name='a1' .... />
<input type='checkbox' name='a2' .... />
 
<input type='checkbox' onClick='this.value=check(this.form);'/> tout cocher
 
<input type='checkbox'  name='12' .... />
<input type='checkbox'  name='13' .... />
<input type='checkbox' .name='18' ... />
<input type='checkbox'  name='22' .... />
<input type='checkbox'  name='24' .... />
</form>
 
javascript :
var checkflag = "false";
function check(field)  
{
 if (checkflag == "false" )  
 {
  for (i = 0; i < field.length; i++)  
  {
   field[i].checked = true;
  }
  checkflag = "true";
  return "Tout décocher";  
 }
 else  
 {
  for (i = 0; i < field.length; i++)  
  {
   field[i].checked = false;  
  }
  checkflag = "false";
  return "Tout cocher";  
 }
}

Reply

Marsh Posté le 19-08-2010 à 12:04:07   

Reply

Marsh Posté le 19-08-2010 à 13:00:57    

Salut,
Essaye ça ;)

Code :
  1. function selectAll() {
  2.  for(i=0;i<document.form1.length;i++) {
  3.   if(document.form1.elements[i].type == "checkbox" ) {
  4.    if(document.form1.elements[i].name == "a1" || document.form1.elements[i].name == "a2" ) {
  5.     document.form1.elements[i].checked = false;
  6.    } else {
  7.     document.form1.elements[i].checked = true;
  8.    }
  9.   }
  10.  }
  11. }

Message cité 1 fois
Message édité par AzOo le 19-08-2010 à 13:02:11

---------------
*** [Feed-Back] AzOo ***
Reply

Marsh Posté le 19-08-2010 à 13:29:15    

AzOo a écrit :

Salut,
Essaye ça ;)

Code :
  1. function selectAll() {
  2.  for(i=0;i<document.form1.length;i++) {
  3.   if(document.form1.elements[i].type == "checkbox" ) {
  4.    if(document.form1.elements[i].name == "a1" || document.form1.elements[i].name == "a2" ) {
  5.     document.form1.elements[i].checked = false;
  6.    } else {
  7.     document.form1.elements[i].checked = true;
  8.    }
  9.   }
  10.  }
  11. }



 
Merci,  
 
et mnt dans le code PHP je mets ca non : <input type='checkbox' onClick='selectAll()'/> tout cocher ???


Message édité par atout1 le 19-08-2010 à 13:35:28
Reply

Marsh Posté le 19-08-2010 à 13:42:29    

essaye de toi même et voit ce que ça donne :p
 


---------------
*** [Feed-Back] AzOo ***
Reply

Marsh Posté le 19-08-2010 à 13:43:48    

AzOo a écrit :

essaye de toi même et voit ce que ça donne :p
 


 
j'ai essayé mais il coche rien du tout :D

Reply

Marsh Posté le 19-08-2010 à 14:07:05    

bizarre chez moi ca marche :p
 
essayes ça :

Code :
  1. <script>
  2. function selectAll() {
  3.  for(i=0;i<document.form1.length;i++) {
  4.   if(document.form1.elements[i].type == "checkbox" ) {
  5.    if(document.form1.elements[i].name == "a1" || document.form1.elements[i].name == "a2" ) {
  6.     document.form1.elements[i].checked = false;
  7.    } else {
  8.     document.form1.elements[i].checked = true;
  9.    }
  10.   }
  11.  }
  12. }
  13. </script>
  14. <form name="form1">
  15. <input type='checkbox' name='a1'/>
  16. <input type='checkbox' name='a2'/><br><br>
  17. <input type='checkbox'  name='toto' onClick='selectAll()'/>toto<br><br>
  18. <input type='checkbox'  name='12'/>
  19. <input type='checkbox'  name='13'/>
  20. <input type='checkbox' .name='18'/>
  21. <input type='checkbox'  name='22'/>
  22. <input type='checkbox'  name='24'/>
  23. </form>
  24. <a style="cursor: pointer;" onclick='selectAll();'>Select All<a/>

Message cité 1 fois
Message édité par AzOo le 19-08-2010 à 14:16:53

---------------
*** [Feed-Back] AzOo ***
Reply

Marsh Posté le 19-08-2010 à 14:36:18    

AzOo a écrit :

bizarre chez moi ca marche :p
 
essayes ça :

Code :
  1. <script>
  2. function selectAll() {
  3.  for(i=0;i<document.form1.length;i++) {
  4.   if(document.form1.elements[i].type == "checkbox" ) {
  5.    if(document.form1.elements[i].name == "a1" || document.form1.elements[i].name == "a2" ) {
  6.     document.form1.elements[i].checked = false;
  7.    } else {
  8.     document.form1.elements[i].checked = true;
  9.    }
  10.   }
  11.  }
  12. }
  13. </script>
  14. <form name="form1">
  15. <input type='checkbox' name='a1'/>
  16. <input type='checkbox' name='a2'/><br><br>
  17. <input type='checkbox'  name='toto' onClick='selectAll()'/>toto<br><br>
  18. <input type='checkbox'  name='12'/>
  19. <input type='checkbox'  name='13'/>
  20. <input type='checkbox' .name='18'/>
  21. <input type='checkbox'  name='22'/>
  22. <input type='checkbox'  name='24'/>
  23. </form>
  24. <a style="cursor: pointer;" onclick='selectAll();'>Select All<a/>



 
ca ne marche toujours pas :S je ne comprends pas la raison ...  
 
pourkoi tas mis la balise <a></a> à la fin ??
 
voici mon code :  

Code :
  1. <script type=\"text/javascript\">
  2. <!-- debut
  3. function selectAll()
  4. {
  5.  for(i=0;i<document.listeObjetForm.length;i++)
  6. {
  7.  if(document.listeObjetForm.elements[i].type == "checkbox" )
  8.  {
  9.   if(document.listeObjetForm.elements[i].name == "MoyT" || document.listeObjetForm.elements[i].name == "MoyS" )
  10.   {
  11.    document.listeObjetForm.elements[i].checked = false;
  12.   }
  13.      else
  14.   {
  15.   document.listeObjetForm.elements[i].checked = true;
  16.      }
  17.  }
  18.  }
  19. }
  20. // fin -->
  21. </script> 
  22. <?php
  23. echo "
  24. <form class='centrer' name='listeObjetForm'>
  25. <input name='MoyT' type='checkbox' value='MoyT' /> Moy T
  26. <input name='MoyS' type='checkbox' value='MoyS' /> Moy S
  27. <input type='checkbox' name='tout' onClick='selectAll()'/> Tout cocher
  28. <input type='checkbox'  name='12'/>
  29. <input type='checkbox'  name='13'/>
  30. <input type='checkbox' .name='18'/>
  31. <input type='checkbox'  name='22'/>
  32. <input type='checkbox'  name='24'/>
  33. </form> ";
  34. ?>

Reply

Marsh Posté le 19-08-2010 à 14:47:00    

essayes avec : <script language="javascript">
...


---------------
*** [Feed-Back] AzOo ***
Reply

Marsh Posté le 19-08-2010 à 15:13:33    

AzOo a écrit :

essayes avec : <script language="javascript">
...


 
ca marche toujours pas :S

Reply

Marsh Posté le 19-08-2010 à 15:17:40    

créer un nouveau document html, puis copie/colle ça :
<script language="javascript">
 
function selectAll() {
 for(i=0;i<document.listeObjetForm.length;i++) {
  if(document.listeObjetForm.elements[i].type == "checkbox" ) {
  if(document.listeObjetForm.elements[i].name == "MoyT" || document.listeObjetForm.elements[i].name == "MoyS" ) {
   document.listeObjetForm.elements[i].checked = false;
  } else {
   document.listeObjetForm.elements[i].checked = true;
  }
  }
 }
}
 
</script>  
 
 
<form class='centrer' name='listeObjetForm'>
 
<input name='MoyT' type='checkbox' value='MoyT' /> Moy T
<input name='MoyS' type='checkbox' value='MoyS' /> Moy S
 
<input type='checkbox' name='tout' onClick='selectAll()'/> Tout cocher
 
<input type='checkbox'  name='12'/>
<input type='checkbox'  name='13'/>
<input type='checkbox' .name='18'/>
<input type='checkbox'  name='22'/>
<input type='checkbox'  name='24'/>
 
</form>
 et dis moi si ça marche ...
 
tu es sur quel navigateur ?!
j'ai tester sur FF 3.6.8 / IE>6 & chrome ca passe nickel ...


---------------
*** [Feed-Back] AzOo ***
Reply

Marsh Posté le 19-08-2010 à 15:17:40   

Reply

Marsh Posté le 19-08-2010 à 15:23:58    

AzOo a écrit :

créer un nouveau document html, puis copie/colle ça :
<script language="javascript">
 
function selectAll() {
 for(i=0;i<document.listeObjetForm.length;i++) {
  if(document.listeObjetForm.elements[i].type == "checkbox" ) {
  if(document.listeObjetForm.elements[i].name == "MoyT" || document.listeObjetForm.elements[i].name == "MoyS" ) {
   document.listeObjetForm.elements[i].checked = false;
  } else {
   document.listeObjetForm.elements[i].checked = true;
  }
  }
 }
}
 
</script>  
 
 
<form class='centrer' name='listeObjetForm'>
 
<input name='MoyT' type='checkbox' value='MoyT' /> Moy T
<input name='MoyS' type='checkbox' value='MoyS' /> Moy S
 
<input type='checkbox' name='tout' onClick='selectAll()'/> Tout cocher
 
<input type='checkbox'  name='12'/>
<input type='checkbox'  name='13'/>
<input type='checkbox' .name='18'/>
<input type='checkbox'  name='22'/>
<input type='checkbox'  name='24'/>
 
</form>
 et dis moi si ça marche ...
 
tu es sur quel navigateur ?!
j'ai tester sur FF 3.6.8 / IE>6 & chrome ca passe nickel ...


 
 
ca marche depuis le html :D je suis sur mozilla firefox ....  
 
mais prkoi ca ne marche pas depuis php ? :S
 

Reply

Marsh Posté le 19-08-2010 à 15:37:37    

... En remplaçant <script type=\"text/javascript\"> par <scipt language="javascript"> dans le code que tu as mis ca marche parfaitememnt ...
Je te le remt en entier aui cas ou :
 
<script language="javascript">
<!-- debut
function selectAll()  
{
  for(i=0;i<document.listeObjetForm.length;i++)  
 {
  if(document.listeObjetForm.elements[i].type == "checkbox" )  
  {
   if(document.listeObjetForm.elements[i].name == "MoyT" || document.listeObjetForm.elements[i].name == "MoyS" )  
   {
    document.listeObjetForm.elements[i].checked = false;
   }  
      else  
   {
   document.listeObjetForm.elements[i].checked = true;
      }
  }
  }
}
// fin -->
</script>  
 
 
<?php
echo "
 <form class='centrer' name='listeObjetForm'>
 
 <input name='MoyT' type='checkbox' value='MoyT' /> Moy T  
 <input name='MoyS' type='checkbox' value='MoyS' /> Moy S
 
 <input type='checkbox' name='tout' onClick='selectAll()'/> Tout cocher
 
 <input type='checkbox'  name='12'/>
 <input type='checkbox'  name='13'/>
 <input type='checkbox' .name='18'/>
 <input type='checkbox'  name='22'/>
 <input type='checkbox'  name='24'/>
 
 </form> ";
?>


---------------
*** [Feed-Back] AzOo ***
Reply

Marsh Posté le 19-08-2010 à 15:42:09    

Ton script tu l'écris en PHP ?!
Tu fais  

Code :
  1. $variable ="<script type ..."


etc ?
 
Le meilleur moyen reste de faire un fichier scripts.js qui contient toutes tes fonctions javascript, ensuite de l'appeler dans le <head> de ta page :

Code :
  1. <script type="text/javascript" src="<?=ROOT_URL;?>js/fonctions.js"></script>


( à adapter à ta page bien sur )
 
Ensuite tu fais ton bouton et les fonctions comme décrites sur cette page, et ça devrait aller.

Reply

Marsh Posté le 19-08-2010 à 16:00:35    

Code :
  1. function cocher_tout(nb,coch){
  2. var nbconcerne = nb;      // On récupères le nombre de cases à cocher/décocher
  3. var cocher = coch.value; // On récupères l'état actuel du dernier traitement rendu par la case "tout cocher"
  4. var checkbox = "";
  5.         if (cocher=='decoches'){ // Si le dernier traitement était de tout décocher, alors le prochain sera de tout cocher
  6.                 var est_coche = true;
  7.                 coch.value="coches"; // On enregistre le nouvel état du dernier traitement dans le formulaire
  8.         }else{
  9.                 var est_coche = false;
  10.                 coch.value="decoches";
  11.         }
  12. for (i=1;i<nbconcerne;i++){ // pour i de 1 à ton nombre total de case à cocher
  13.  checkbox="nom_de_ta_checkbox_"+i; // Tu construis le nom de la checkbox à cocher
  14.  document.getElementById(checkbox).checked = est_coche;
  15.  document.getElementById(checkbox).checked = est_coche;
  16. }
  17. }


 
Dans mon formulaire, j'ai un bouton pour cocher :
 

Code :
  1. <input type=button value=\"Cocher tout\" onClick=\"cocher_tout(document.getElementById('nbconcerne').value,document.getElementById('etat_cases'));\">


 
Mes checkbox ( crées par un while, le numéro à la fin du nom s'incrémente jusqu'à la fin du traitement )

Code :
  1. <input type="CHECKBOX" id="nom_de_ta_checkbox_1" value="ta_valeur_1">
  2. <input type="CHECKBOX" id="nom_de_ta_checkbox_2" value="ta_valeur_2">
  3. <input type="CHECKBOX" id="nom_de_ta_checkbox_3" value="ta_valeur_3">


 
Mon champ caché qui me dis le nombre de checkbox

Code :
  1. <input type="hidden" id="nbconcerne" value="<?=$nbconcerne;?>">


 
Et un champ qui me dis si les cases sont cochées ou pas

Code :
  1. <input type="hidden" id="etat_cases" value="decoches">


 
C'est pas super pro, mais si ça peut t'aider

Reply

Marsh Posté le 19-08-2010 à 16:08:22    

hinomura a écrit :

Code :
  1. function cocher_tout(nb,coch){
  2. var nbconcerne = nb;      // On récupères le nombre de cases à cocher/décocher
  3. var cocher = coch.value; // On récupères l'état actuel du dernier traitement rendu par la case "tout cocher"
  4. var checkbox = "";
  5.         if (cocher=='decoches'){ // Si le dernier traitement était de tout décocher, alors le prochain sera de tout cocher
  6.                 var est_coche = true;
  7.                 coch.value="coches"; // On enregistre le nouvel état du dernier traitement dans le formulaire
  8.         }else{
  9.                 var est_coche = false;
  10.                 coch.value="decoches";
  11.         }
  12. for (i=1;i<nbconcerne;i++){ // pour i de 1 à ton nombre total de case à cocher
  13.  checkbox="nom_de_ta_checkbox_"+i; // Tu construis le nom de la checkbox à cocher
  14.  document.getElementById(checkbox).checked = est_coche;
  15.  document.getElementById(checkbox).checked = est_coche;
  16. }
  17. }


 
Dans mon formulaire, j'ai un bouton pour cocher :
 

Code :
  1. <input type=button value=\"Cocher tout\" onClick=\"cocher_tout(document.getElementById('nbconcerne').value,document.getElementById('etat_cases'));\">


 
Mes checkbox ( crées par un while, le numéro à la fin du nom s'incrémente jusqu'à la fin du traitement )

Code :
  1. <input type="CHECKBOX" id="nom_de_ta_checkbox_1" value="ta_valeur_1">
  2. <input type="CHECKBOX" id="nom_de_ta_checkbox_2" value="ta_valeur_2">
  3. <input type="CHECKBOX" id="nom_de_ta_checkbox_3" value="ta_valeur_3">


 
Mon champ caché qui me dis le nombre de checkbox

Code :
  1. <input type="hidden" id="nbconcerne" value="<?=$nbconcerne;?>">


 
Et un champ qui me dis si les cases sont cochées ou pas

Code :
  1. <input type="hidden" id="etat_cases" value="decoches">


 
C'est pas super pro, mais si ça peut t'aider


 
merci pour l'aide ...  
ca marche tjs pas ...  
 
par contre la fonction suivant ca marche bien mais il coche et décoche tous les input de la page et moi je veux que pour un form spécifique  
et quand j'ajout le getElementById('nomForm') la fonction marche plus  ????!!!!!!!!!!!!!
 
fonctions.js:
var checkflag = "false";
function selectAll()
{
 var inputs = document.getElementsByTagName('input') ;
 if (checkflag == "false" )  
 {
  for(i=0;i<inputs.length;i++)
  {
   if(inputs[i].type == "checkbox" )
   {
    if(inputs[i].name == "MoyT" || inputs[i].name == "MoyS" )
     inputs[i].checked = false;
    else
     inputs[i].checked = true;
   }
  }
   checkflag = "true";
 }else
 {
  for(i=0;i<inputs.length;i++)
  {
   inputs[i].checked = false;
  }
  checkflag = "false";
 }
 
}
 
.php :
<input type='checkbox' name='tout' onClick='selectAll()'/> Tout cocher

Reply

Marsh Posté le 19-08-2010 à 16:20:40    

Tu as une variable qui est hors d'une fonction, puis dedans.
Tu en fais quoi de ton checkflag ?
 
Lis bien ce qui t'a été dis, tu trouveras une solution qui marche là dedans.

Reply

Marsh Posté le 20-08-2010 à 11:12:52    

hinomura a écrit :

Tu as une variable qui est hors d'une fonction, puis dedans.
Tu en fais quoi de ton checkflag ?
 
Lis bien ce qui t'a été dis, tu trouveras une solution qui marche là dedans.


 
Bonjour,  ca va ?
 
en faite la var checkflag, je l'utilise pour cocher et décocher les checkbox et non seulement cocher

Reply

Marsh Posté le 20-08-2010 à 12:34:57    

atout1 a écrit :

 

Bonjour,  ca va ?

 

en faite la var checkflag, je l'utilise pour cocher et décocher les checkbox et non seulement cocher


Et donc ? ça ne marche pas ?

 


Code :
  1. function cocher_decocher(nb_de_cases,etat_cases)
  2. {
  3.          var nbconcerne = nb_de_cases.value;     
  4.          var checkbox    = '';
  5.          var est_coche  = '';
  6.          if (etat_cases.value == 'decoch')
  7.          { 
  8.                   est_coche = true;
  9.                   etat_cases.value="coch";
  10.          }
  11.          else
  12.          {
  13.                   est_coche = false;
  14.                   etat_cases.value="decoch";
  15.          }
  16. }
 

Ecrit cette fonction la dans ton script

 

Dans ton code html écrit ceci :

 
Code :
  1. <form name="peu_importe" id="peu_importe" method="POST" action="peu_importe">
  2. <input type="button" value="COCHER et DECOCHER"
  3. onClick="cocher_decocher(document.getElementById('nb_de_cases'),document.getElementById('dernier_traitement'));">
  4. <br />
  5. DERNIER TRAITEMENT: <input type="text" name="dernier_traitement" id="dernier_traitement" value="decoch" disabled="true">
  6. <input type="hidden" name="nb_de_cases" id="nb_de_cases" value="10">
  7. </form>
 

Teste le bouton, il doit te modifier la valeur du champ "DERNIER TRAITEMENT"

 

Si ça ça marche, tu rajoutes une boucle comme on te l'a montré au dessus, et tu fais ce que tu veux ensuite.

 

Pour info, ce script marche sur une page de test bidon que j'ai fais, il modifie l'état en coch / decoch
Suivant cet état, tu fais un for qui coche / décoche tout sauf ce que tu veux  en te servant de

Code :
  1. nomcheckbox.checked = est_coche

;)

Message cité 1 fois
Message édité par hinomura le 20-08-2010 à 12:38:06
Reply

Marsh Posté le 22-08-2010 à 16:12:11    

hinomura a écrit :


Et donc ? ça ne marche pas ?
 
 

Code :
  1. function cocher_decocher(nb_de_cases,etat_cases)
  2. {
  3.          var nbconcerne = nb_de_cases.value;     
  4.          var checkbox    = '';
  5.          var est_coche  = '';
  6.          if (etat_cases.value == 'decoch')
  7.          { 
  8.                   est_coche = true;
  9.                   etat_cases.value="coch";
  10.          }
  11.          else
  12.          {
  13.                   est_coche = false;
  14.                   etat_cases.value="decoch";
  15.          }
  16. }


 
Ecrit cette fonction la dans ton script
 
Dans ton code html écrit ceci :
 

Code :
  1. <form name="peu_importe" id="peu_importe" method="POST" action="peu_importe">
  2. <input type="button" value="COCHER et DECOCHER"
  3. onClick="cocher_decocher(document.getElementById('nb_de_cases'),document.getElementById('dernier_traitement'));">
  4. <br />
  5. DERNIER TRAITEMENT: <input type="text" name="dernier_traitement" id="dernier_traitement" value="decoch" disabled="true">
  6. <input type="hidden" name="nb_de_cases" id="nb_de_cases" value="10">
  7. </form>


 
Teste le bouton, il doit te modifier la valeur du champ "DERNIER TRAITEMENT"
 
Si ça ça marche, tu rajoutes une boucle comme on te l'a montré au dessus, et tu fais ce que tu veux ensuite.
 
Pour info, ce script marche sur une page de test bidon que j'ai fais, il modifie l'état en coch / decoch
Suivant cet état, tu fais un for qui coche / décoche tout sauf ce que tu veux  en te servant de

Code :
  1. nomcheckbox.checked = est_coche

;)


 
Bonjour,  
 
pb resolu .. merci pour ton aide  
 
en faite le variable chekflag ne cause pas de pb .. le pb c'etait au niveau html :D
 
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed