sélectionner checkall - impossible [Résolu]

Petit nouveau ! | 9 Messages

15 juin 2011, 18:25

Bonjour à tous,

Comme préciser dans le sujet, j'essaie depuis quelque temps à sélectionner (checked) une liste de personnes qui ont un email depuis une base MySQL. Et cela en javascript ou PHP, mais impossible de tout sélectionner.
J'ai testé plusieurs méthodes PHP et javascript pour faire " tout sélectionner" ou "désélectionner" mais ça ne fonctionne pas.

Si quelqu'un peut m'aider. Merci à l'avance pour votre aide.

Voici mon code:
<?php
$mail = $_POST['mail'];
// Pour n'afficher que les champs remplis , recherche si il y a des champs vide .
$rsql="SELECT ";
for($i=1;$i<=$mail;$i++)
{
  if($i>1) $rsql = $rsql.",";
$rsql = $rsql."if(c$i,'','c$i est vide')";
}
$rsql="FROM `clients` ORDER BY mail != '' DESC";

// ACCES A LA BASE DE DONNEE
include "config.php";

//REQUETE SUR LA TABLE PROPRIOS
$sql_query = "SELECT * FROM

    `clients` ORDER BY mail DESC";

    //$sql_query = 'SELECT * FROM `clients` ORDER BY mail DESC LIMIT '.$limite.','.$nombre.'';
$result = mysql_query($sql_query);
if (!$result) {
	   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
	      exit;
}

// form: crée ou pas le checked sur les champs radios et checkbox
function form_check($mail,$value){
//$checked = ' checked="checked"';
$checked = ' checked=""';
if(isset($_POST[$mail]) && $_POST[$mail]===$value){
return $checked;
}else{
return false;
}
}

// AFFICHAGE PAGE PAR PAGE DES RESULTAT
$nombre = 20;  // on va afficher 5 résultats par page.
if (!isset($limite)) $limite = 0; // si on arrive sur la page pour la première fois
               // on met limite à 0.

$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts['basename'];


echo    "<form name='email' method='post' action='envoimail.php?clients=".$mail."' />";
echo    "<table align='center' class='liste'>";
           echo "<div id=\"div_chck\">";
	       echo "<tr>";
			   	//echo "<td> Tous <input type=checkbox name='$mail' onClick='javascript:document.gestfiles.submit()' value='Cocher'></td>";
                //echo "<td> Tous <input type='checkbox' name='allselect' onClick=\"ManagementCheckBox('')\"  value='Cocher'></td>";

                echo "<td><input type=\"checkbox\" name=\"checkState\" onClick=\"checkState('')\" value=\"checkbox\"($case== true)?\" \" />Tous</td>";
                echo "<td>Soci&eacute;t&eacute;e</td>";
                echo "<td>Civilit&eacute;</td>";
                echo "<td>Nom</td>";
                echo "<td>Pr&eacute;nom</td>";
                echo "<td>Adresse</td>";
                echo "<td>CP</td>";
	       		echo "<td>Ville</td>";
	       		echo "<td>Tel</td>";
                echo "<td>Fax</td>";
                echo "<td>Portable</td>";
	       		echo "<td>Mail</td>";
	       echo "</tr>";

while($row=mysql_fetch_array($result)) {
	       $id= $row['ID'];
           $intitule= $row['intitule'];
           $civilite= $row['civilite'];
           $nom = $row['nom'];
           $prenom = $row['prenom'];
	       $adresse= $row['adresse'];
	       $cp = $row['CP'];
	       $ville= $row['Ville'];
           $tel = $row['Tel'];
           $fax = $row['Fax'];
           $port = $row['portable'];
	       $mail = $row['mail'];


 // pour un bouton checkbox
                echo "<tr>";
                $checked = $value['mail']=1 ? "checked='checked'": "";
                //echo '<input name="email" type="checkbox" value="$mail" ' . $checked .'>';
                //echo '<input name="option1" type="checkbox" value="$mail" '.form_check('option1','mail').' /> ',"\r\n";
                //echo "<td><div id='checkState' align='center' ><input type='checkbox' name='$mail[]' id='checkState' value='".$mail."' onClick='checkState('');' /></div></td>";
                echo "<td><div id='email' align='center' ><input name='mail' type='checkbox' value='$mail' $checked></div></td>";
                //echo "<td align='center' ><input type='checkbox' name=".$proprio_mail['prop_mail']." value=".$proprio_mail['prop_mail']." onClick='checkState()' /></td>";
                echo "<td>" . $intitule ."</td>";
                echo "<td>" . $civilite ."</td>";
	       		echo "<td>" . $nom ."</td>";
 	       		echo "<td>" . $prenom ."</td>";
 	       		echo "<td>" . $adresse ."</td>";
                echo "<td>" . $cp ."</td>";
                echo "<td>" . $ville ."</td>";
                echo "<td>" . $tel ."</td>";
                echo "<td>" . $fax ."</td>";
                echo "<td>" . $port ."</td>";
                echo "<td>" . $mail ."</td>";
    			echo "</td>";
                echo "</tr>";
}
   echo " </div>";
echo "</table>";
echo    ' <div align="center" > <input align="center" name="" type="submit" class="nav" id="envoyer" value="Envoyer" /></div>';

echo    " </form>";
mysql_close($sqllink);
?>
Modifié en dernier par chero9000kee le 19 juin 2011, 20:15, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 juin 2011, 23:03

Il y a de nombreuses façon de faire, mais personnellement depuis que j'ai découvert jquery je n'utilise plus que ça :)

Jquery est une librairie javascript qui te permet (entre autre) d'accéder très facilement à tous les éléments de ta page. Il faut un peu apprendre la syntaxe, mais au final tu peux arriver à gérer tes cases à cocher (et bien d'autres choses) en à peine quelques lignes de code :)

Pour te donner un exemple, il te suffit d'inclure la librairie jquery et d'ajouter ce code dans une balise script de ta page :

Code : Tout sélectionner

$(document).ready( // une fois la page chargée $('input[name="checkState"]').click(function() { // détecte le clic de ta case checkState $(":checkbox").attr('checked', $(this).attr('checked')); // coche ou décoche toutes les cases }); );
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 9 Messages

16 juin 2011, 10:57

Merci pour ta réponse, je vais essayer ça.

Petit nouveau ! | 9 Messages

16 juin 2011, 11:54

Je n'y arrive pas. J'en ai marre de passer des heures a chercher à comprendre.
Voici ce que j'ai fait :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<LINK href="design/style.css" rel="stylesheet" type="text/css">
<SCRIPT LANGUAGE="JavaScript">
$(document).ready( // une fois la page chargée
  $('input[name="checkState"]').click(function() {  // détecte le clic de ta case checkState
    $(":checkbox").attr('checked', $(this).attr('checked')); // coche ou décoche toutes les cases
  });
);
</script>
</head>
<BODY oncontextmenu="return thekingoftheweb()">
<script type="text/javascript" src="javascript/wz_tooltip.js"></script>
<script type="text/javascript" src="javascript/jquery-1.6.1.min.js"></script>
<?php
$mail = $_POST['mail'];
// Pour n'afficher que les champs remplis , recherche si il y a des champs vide .
$rsql="SELECT ";
for($i=1;$i<=$mail;$i++)
{
  if($i>1) $rsql = $rsql.",";
$rsql = $rsql."if(c$i,'','c$i est vide')";
}
$rsql="FROM `clients` ORDER BY mail != '' DESC";

// ACCES A LA BASE DE DONNEE
include "config.php";

//REQUETE SUR LA TABLE PROPRIOS
$sql_query = "SELECT * FROM

    `clients` ORDER BY mail DESC";

    //$sql_query = 'SELECT * FROM `clients` ORDER BY mail DESC LIMIT '.$limite.','.$nombre.'';
$result = mysql_query($sql_query);
if (!$result) {
           echo 'Impossible d\'exécuter la requête : ' . mysql_error();
              exit;
}

// form: crée ou pas le checked sur les champs radios et checkbox
function form_check($mail,$value){
//$checked = ' checked="checked"';
$checked = ' checked=""';
if(isset($_POST[$mail]) && $_POST[$mail]===$value){
return $checked;
}else{
return false;
}
}

// AFFICHAGE PAGE PAR PAGE DES RESULTAT
$nombre = 20;  // on va afficher 5 résultats par page.
if (!isset($limite)) $limite = 0; // si on arrive sur la page pour la première fois
               // on met limite à 0.

$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts['basename'];


echo    "<form name='email' method='post' action='envoimail.php?clients=".$mail."' />";
echo    "<table align='center' class='liste'>";
           echo "<div id=\"div_chck\">";
               echo "<tr>";
                echo "<td><input type=\"checkbox\" name=\"checkState\" onClick=\"checkState('')\" value=\"checkbox\"($case== true)?\" \" />Tous</td>";
                echo "<td>Soci&eacute;t&eacute;e</td>";
                echo "<td>Civilit&eacute;</td>";
                echo "<td>Nom</td>";
                echo "<td>Pr&eacute;nom</td>";
                echo "<td>Adresse</td>";
                echo "<td>CP</td>";
                        echo "<td>Ville</td>";
                        echo "<td>Tel</td>";
                echo "<td>Fax</td>";
                echo "<td>Portable</td>";
                        echo "<td>Mail</td>";
               echo "</tr>";

while($row=mysql_fetch_array($result)) {
               $id= $row['ID'];
           $intitule= $row['intitule'];
           $civilite= $row['civilite'];
           $nom = $row['nom'];
           $prenom = $row['prenom'];
               $adresse= $row['adresse'];
               $cp = $row['CP'];
               $ville= $row['Ville'];
           $tel = $row['Tel'];
           $fax = $row['Fax'];
           $port = $row['portable'];
               $mail = $row['mail'];


 // pour un bouton checkbox
                echo "<tr>";
                $checked = $value['mail']=1 ? "checked='checked'": "";
                //echo '<input name="email" type="checkbox" value="$mail" ' . $checked .'>';
                //echo '<input name="option1" type="checkbox" value="$mail" '.form_check('option1','mail').' /> ',"\r\n";
                //echo "<td><div id='checkState' align='center' ><input type='checkbox' name='$mail[]' id='checkState' value='".$mail."' onClick='checkState('');' /></div></td>";
                echo "<td><div id='email' align='center' ><input name='checkState' type='checkbox' value='$mail' $checked></div></td>";
                //echo "<td align='center' ><input type='checkbox' name=".$proprio_mail['prop_mail']." value=".$proprio_mail['prop_mail']." onClick='checkState()' /></td>";
                echo "<td>" . $intitule ."</td>";
                echo "<td>" . $civilite ."</td>";
                        echo "<td>" . $nom ."</td>";
                        echo "<td>" . $prenom ."</td>";
                        echo "<td>" . $adresse ."</td>";
                echo "<td>" . $cp ."</td>";
                echo "<td>" . $ville ."</td>";
                echo "<td>" . $tel ."</td>";
                echo "<td>" . $fax ."</td>";
                echo "<td>" . $port ."</td>";
                echo "<td>" . $mail ."</td>";
                        echo "</td>";
                echo "</tr>";
}
   echo " </div>";
echo "</table>";
echo    ' <div align="center" > <input align="center" name="" type="submit" class="nav" id="envoyer" value="Envoyer" /></div>';

echo    " </form>";
mysql_close($sqllink);
?>
</body>
</html>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 juin 2011, 14:20

hum, a tu essayé de mettre le script après l'inclusion de la lib ? (je suis pas certain que ça change mais ça me paraitrais logique de déclarer la lib avant de l'utiliser ;)

d'ailleur pour être propre l'inclusion des scrip devrait se faire dans le head ;)

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 9 Messages

17 juin 2011, 17:20

Je te remercie pour ton aide, mais Je ne suis pas sur d'avoir compris.
J'ai effectué les changements si-dessous, mais ça ne fonctionne toujours pas.
Voila mon code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<LINK href="design/style.css" rel="stylesheet" type="text/css">
<SCRIPT LANGUAGE="JavaScript">

$(document).ready( // une fois la page chargée
  $('input[name="checkState"]').click(function() {  // détecte le clic de ta case checkState
    $(":checkbox").attr('checked', $(this).attr('checked')); // coche ou décoche toutes les cases
  });
);
</script>
 <?php
 // form: crée ou pas le checked sur les champs radios et checkbox
function form_check($mail,$value){
//$checked = ' checked="checked"';
$checked = ' checked=""';
if(isset($_POST[$mail]) && $_POST[$mail]===$value){
return $checked;
}else{
return false;
}
}
?>
</head>
<BODY oncontextmenu="return thekingoftheweb()">
<script type="text/javascript" src="javascript/wz_tooltip.js"></script>
<?php
// ACCES A LA BASE DE DONNEE
include "config.php";

$mail = $_POST['mail'];

//REQUETE SUR LA TABLE PROPRIOS
$sql_query = "SELECT * FROM
    `clients` ORDER BY mail DESC";
    //$sql_query = 'SELECT * FROM `clients` ORDER BY mail DESC LIMIT '.$limite.','.$nombre.'';
$result = mysql_query($sql_query);
if (!$result) {
	   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
	      exit;
}

echo    "<form name='email' method='post' action='envoimail.php?clients=".$mail."' />";
echo    "<table align='center' class='liste'>";
           echo "<div id=\"div_chck\">";
	       echo "<tr>";
                echo "<td><input type=\"checkbox\" name=\"checkState\" onClick=\"checkState('')\" value=\"checkbox\"($case== true)?\" \" />Tous</td>";
                echo "<td>Soci&eacute;t&eacute;e</td>";
                echo "<td>Civilit&eacute;</td>";
                echo "<td>Nom</td>";
                echo "<td>Pr&eacute;nom</td>";
                echo "<td>Adresse</td>";
                echo "<td>CP</td>";
	       		echo "<td>Ville</td>";
	       		echo "<td>Tel</td>";
                echo "<td>Fax</td>";
                echo "<td>Portable</td>";
	       		echo "<td>Mail</td>";
	       echo "</tr>";

while($row=mysql_fetch_array($result)) {
	       $id= $row['ID'];
           $intitule= $row['intitule'];
           $civilite= $row['civilite'];
           $nom = $row['nom'];
           $prenom = $row['prenom'];
	       $adresse= $row['adresse'];
	       $cp = $row['CP'];
	       $ville= $row['Ville'];
           $tel = $row['tel'];
           $fax = $row['_Fax'];
           $port = $row['port'];
	       $mail = $row['mail'];

 // pour un bouton checkbox
                echo "<tr>";
                $checked = $value['checkState']=0 ? "checked='checked'": "";
                //echo '<input name="email" type="checkbox" value="$mail" ' . $checked .'>';
                //echo '<input name="option1" type="checkbox" value="$mail" '.form_check('option1','mail').' /> ',"\r\n";
                //echo "<td><div id='checkState' align='center' ><input type='checkbox' name='$mail[]' id='checkState' value='".$mail."' onClick='checkState('');' /></div></td>";
                echo "<td><div align='center' ><input name='checkState' type='checkbox' value='$mail' $checked></div></td>";
                //echo "<td align='center' ><input type='checkbox' name=".$mail['mail']." value=".$mail['mail']." onClick='checkState()' /></td>";
                echo "<td>" . $intitule ."</td>";
                echo "<td>" . $civilite ."</td>";
	       		echo "<td>" . $nom ."</td>";
 	       		echo "<td>" . $prenom ."</td>";
 	       		echo "<td>" . $adresse ."</td>";
                echo "<td>" . $cp ."</td>";
                echo "<td>" . $ville ."</td>";
                echo "<td>" . $tel ."</td>";
                echo "<td>" . $fax ."</td>";
                echo "<td>" . $port ."</td>";
                echo "<td>" . $mail ."</td>";
    			echo "</td>";
                echo "</tr>";
}
   echo " </div>";
echo "</table>";
echo    ' <div align="center" > <input align="center" name="" type="submit" class="nav" id="envoyer" value="Envoyer" /></div>';

echo    " </form>";
mysql_close($sqllink);
?>
</body>
</html>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

17 juin 2011, 18:25

hum
de
<SCRIPT LANGUAGE="JavaScript">
$(document).ready( // une fois la page chargée
$('input[name="checkState"]').click(function() { // détecte le clic de ta case checkState
$(":checkbox").attr('checked', $(this).attr('checked')); // coche ou décoche toutes les cases
});
);
</script>
</head>
<BODY oncontextmenu="return thekingoftheweb()">
<script type="text/javascript" src="javascript/wz_tooltip.js"></script>
<script type="text/javascript" src="javascript/jquery-1.6.1.min.js"></script>

a

<script type="text/javascript" src="javascript/wz_tooltip.js"></script>
<script type="text/javascript" src="javascript/jquery-1.6.1.min.js"></script>
<SCRIPT LANGUAGE="JavaScript">
$(document).ready( // une fois la page chargée
$('input[name="checkState"]').click(function() { // détecte le clic de ta case checkState
$(":checkbox").attr('checked', $(this).attr('checked')); // coche ou décoche toutes les cases
});
);
</script>
</head>
<BODY oncontextmenu="return thekingoftheweb()">

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 9 Messages

18 juin 2011, 12:38

Je l'ai fait, mais sa ne fonctionne toujours pas.

Peux tu m'expliquer un peu, s'il te plait, pour le "checkState".
Je l'ai 2 fois :
sélection de TOUS
1).
echo "<td><input type=\"checkbox\" name=\"checkState\" onClick=\"checkState('')\" value=\"checkbox\"($case== true)?\" \" />[b]Tous[/b]</td>";
et ceux que je selectionne individuellement
2).
echo "<td><div id='email' align='center' ><input name='checkState' type='checkbox' value='$mail' $checked></div></td>";

Petit nouveau ! | 9 Messages

19 juin 2011, 20:14

Merci pour votre aide, ça fonctionne :
<script>
function checkAll(event) {
eSrc=(document.all)?event.srcElement:event.target;
cbs=eSrc.form.elements;
for(i=1;i< cbs.length;i++)
if(cbs.type=='checkbox')
cbs.checked=eSrc.checked;
}
</script>