Tout cocher / tout décocher

Eléphant du PHP | 331 Messages

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

Mammouth du PHP | 991 Messages

13 avr. 2007, 22:42

oui en javascript car cela s'execute coté client non coté serveur ^^
DevOps, Symfony4, Hoa

Eléphant du PHP | 331 Messages

13 avr. 2007, 22:43

et oui .... !!!!

Et comment pourrais-je m'y prendre ?

Mammouth du PHP | 991 Messages

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+
DevOps, Symfony4, Hoa

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 avr. 2007, 23:27

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 331 Messages

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:

Eléphant du PHP | 331 Messages

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 !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 331 Messages

15 avr. 2007, 10:10

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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)
}

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 331 Messages

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 !

Eléphant du PHP | 360 Messages

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; } } }