Tout cocher / tout décocher

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Tout cocher / tout décocher

par Snoops » 18 avr. 2007, 14:44

Réuni la partie de ta fonction avec la celle de "Truc" là où il te l'a indiqué en modifiant les variables "elemen" et "etat" et ca donne quelque chose de ce genre :

Code : Tout sélectionner

var etat = false; function Check_all(element) { etat = !etat; document.getElementById('image').src = etat+".gif"; // pour des images ayant comme nom true.gif (pour tout cocher) et false.gif (pour tout décocher).... (vérifier le chemin !! ) // ici la fonction d'avant en prenant soin de faire correspondre la variable "etat" à l'ncien paramètre (2ème) var checkboxes = document.getElementById(element).getElementsByTagName('input'); for (var i=0;i<checkboxes.length;i++) { if(checkboxes[i].type == 'checkbox') { checkboxes[i].checked = etat; } } }

par jay64 » 15 avr. 2007, 15:40

:shock: Je suis désolé mais je n'y comprends rien, je découvre complet le javascript.

Dans le head j'ai ça :

Code : Tout sélectionner

<script type="text/javascript"> function Check_all(container_id,state) { var checkboxes = document.getElementById(container_id).getElementsByTagName('input'); for (var i=0;i<checkboxes.length;i++) { if(checkboxes[i].type == 'checkbox') { checkboxes[i].checked = state; } } return true; } </script>
et le formulaire suivant dans lequel j'appelle la fonction java :
<form name="form1" method="post" id="frmsupprmail" action="../scripts/import_csv.php">
  <div align="center">
    <p><a href="Javascript:void(0)" onClick="Check_all('frmsupprmail', true); return false;">Tout cocher</a> / <a href="Javascript:void(0)" onClick="Check_all('frmsupprmail', false); return false;">Tout décocher</a></p>
    </div>
  <table width="100%" border="0" align="center">
	<tr>
		<td bgcolor="#D2DDE3"><div align="center"><strong>Contact</strong></div></td>
 		<td bgcolor="#D2DDE3"><div align="center"><strong>Email</strong></div></td>
		<td><div align="center"><img src="../images/coche.jpg" width="34" height="25"></div></td>
       	</tr>	

<?
$mots = array(); 
$i = 0; 
foreach($fichier AS $fic) 
{ 
    $mots[$i] = explode($delimiteur, $fic); 
	?>
	<tr bgcolor="<?php echo (++$j%2==0 ? "$couleur1" : "$couleur2"); ?>">
		<td><div align="center" class="Style1"><?php echo strtr(($mots[$i][$NumColNom-1]), "\"", "\0"); ?></div></td>
 		<td><div align="center" class="Style1"><?php echo strtr(($mots[$i][$NumColEmail-1]), "\"", "\0"); ?></div></td>
		<td><div align="center" class="Style1">
		  <label>
		  <input type="checkbox" name="contact[]" value="<? echo strtr(($mots[$i][$NumColNom-1]), "\"", "\0").";".strtr(($mots[$i][$NumColEmail-1]), "\"", "\0");?>">
		  </label>
		</div></td>		
		</tr>	
    <? $i++; }
}
}
?>
</table>
  <label>
  <div align="center"><br>
    <input type="submit" name="Submit" value="Importer les contacts coch&eacute;s">
  </div>
  </label>
</form>
Je ne capte pas ce que je dois changer et où !

Merci encore !

par Truc » 15 avr. 2007, 11:20

Il était tard j'ai fait vite :lol:

Tu modifie la fonction en supprimant le 2ème paramètre :
Check_all('frmsupprmail');
pour l'appel.

La fonction devient :
var etat = false;
function Check_all(element)
{
    etat = !etat;
    document.getElementById('image').src = etat+".gif"; // pour des images ayant comme nom true.gif (pour tout cocher) et false.gif (pour tout décocher).... (vérifier le chemin !! )
 

    // ici la fonction d'avant en prenant soin de faire correspondre la variable "etat" à l'ncien paramètre (2ème)
}

par jay64 » 15 avr. 2007, 10:10

euhhhhh, je t'avoue ne pas du tout comprendre comment le tourner ... :?

par Truc » 15 avr. 2007, 00:47

Dans le même ésprit que ça... une variable globale initialisée à vrai ou faux qui prendrait en valeur l'opposé sur click (fonction) sur l'image.

(Pour le changement d'image change la valeur de l'attribut "src" dans la même fonction)

par jay64 » 14 avr. 2007, 21:23

en fait, j'aurais une question complémentaire.
Actuellement, j'ai deux liens distincts pour cocher et décocher :

Code : Tout sélectionner

<a href="Javascript:void(0)" onClick="Check_all('frmsupprmail', true); return false;">Tout cocher</a> / <a href="Javascript:void(0)" onClick="Check_all('frmsupprmail', false); return false;">Tout décocher</a>
Comment faire pour avoir un seul lien, que je veux mettre derrière une image et qui alterne cocher et décocher à lui tout seul ?

Merci !

par jay64 » 13 avr. 2007, 23:34

Ok pour le déplacement, c'est vrai qu'il est plus à sa place ici !

Bien finalement, j'ai trouvé mon bonheur, en réalisant ce script :

http://www.asp-php.net/ressources/bouts ... spx?id=773

Code : Tout sélectionner

<script type="text/javascript"> function Check_all(container_id,state) { var checkboxes = document.getElementById(container_id).getElementsByTagName('input'); for (var i=0;i<checkboxes.length;i++) { if(checkboxes[i].type == 'checkbox') { checkboxes[i].checked = state; } } return true; } </script> <a href="Javascript:void(0)" onclick="Check_all('frmsupprmail', true); return false;">Tout cocher</a> / <a href="Javascript:void(0)" onclick="Check_all('frmsupprmail', false); return false;">Tout décocher</a> <br> <table border="1"> <form method="post" action="lapage.php" id="frmsupprmail"> <?php $req = mysql_query("SELECT * FROM messagerie WHERE destinataire = '$_SESSION[login]' ORDER BY id DESC") or die("Erreur : ".mysql_error()); while($res = mysql_fetch_array($req)) { echo '<tr><td><input type="checkbox" name="'.$res[id].'" value="ok"></td><td>'.$res[titre].'</td><td>'.$res[expediteur].'</td></tr>'; } ?> </table></form>
Merci les gars ! :lol:

par Truc » 13 avr. 2007, 23:27

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Javascript, AJAX".

par thehawk » 13 avr. 2007, 22:47

ben tous simplement en faisant une tite recherche ....
en moins 2 minute j'ai trouver ceci ^^::
http://www.editeurjavascript.com/script ... _3_786.php

Voila a+

par jay64 » 13 avr. 2007, 22:43

et oui .... !!!!

Et comment pourrais-je m'y prendre ?

par thehawk » 13 avr. 2007, 22:42

oui en javascript car cela s'execute coté client non coté serveur ^^

Tout cocher / tout décocher

par jay64 » 13 avr. 2007, 22:39

Bonsoir à tous,

J'ai un tableau qui affiche selon ce bout de code :
<?
$mots = array(); 
$i = 0; 
foreach($fichier AS $fic) 
{ 
    $mots[$i] = explode($delimiteur, $fic); 
	?>
	<tr bgcolor="<?php echo (++$j%2==0 ? "$couleur1" : "$couleur2"); ?>">
		<td><div align="center" class="Style1"><?php echo strtr(($mots[$i][$NumColNom-1]), "\"", "\0"); ?></div></td>
 		<td><div align="center" class="Style1"><?php echo strtr(($mots[$i][$NumColEmail-1]), "\"", "\0"); ?></div></td>
		<td><div align="center" class="Style1">
		  <label>
		  <input type="checkbox" name="contact[]" value="<? echo strtr(($mots[$i][$NumColNom-1]), "\"", "\0").";".strtr(($mots[$i][$NumColEmail-1]), "\"", "\0");?>">
		  </label>
		</div></td>		
		</tr>	
    <? $i++; }
}
}
?>
La dernière colonne de ce tableau est une checkbox, qui par défaut est décochée, et je demande à l'utilisateur de cocher ou décocher selon ses besoins en fonction de chaque ligne du tableau.
Je voudrais lui rajouter un bouton qui permette de tout cocher en une seule fois et qui inversement, puisse aussi tout décocher.

Savez-vous comment je pourrais le gérer ? Peut-être avec un javascript ?

Merci !

Jay