Page 1 sur 1

Tout cocher / tout décocher

Posté : 13 avr. 2007, 22:39
par jay64
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

Posté : 13 avr. 2007, 22:42
par thehawk
oui en javascript car cela s'execute coté client non coté serveur ^^

Posté : 13 avr. 2007, 22:43
par jay64
et oui .... !!!!

Et comment pourrais-je m'y prendre ?

Posté : 13 avr. 2007, 22:47
par thehawk
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+

Posté : 13 avr. 2007, 23:27
par Truc
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Javascript, AJAX".

Posté : 13 avr. 2007, 23:34
par jay64
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:

Posté : 14 avr. 2007, 21:23
par jay64
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 !

Posté : 15 avr. 2007, 00:47
par Truc
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)

Posté : 15 avr. 2007, 10:10
par jay64
euhhhhh, je t'avoue ne pas du tout comprendre comment le tourner ... :?

Posté : 15 avr. 2007, 11:20
par Truc
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)
}

Posté : 15 avr. 2007, 15:40
par jay64
: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 !

Posté : 18 avr. 2007, 14:44
par Snoops
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; } } }