Menu

Bouton cocher/décocher [Résolu]

Messages postés
76
Date d'inscription
lundi 16 septembre 2013
Dernière intervention
1 février 2019
-
Bonjour à tous,
J'ai besoin d'un script pour cocher et décocher des checkboxes.
N'étant pas du tout bonne en Javascript, j'ai glané un code qui fonctionne parfaitement, jusqu'à ce que je mette tout cela dans un tableau bien propre, et là, ça me marche plus du tout.
J'imagine que c'est à cause du div div_chck, qui du coup se termine à chaque </td>...
Je ne sais pas comment m'en sortir !
Quelqu'un pour m'aider ?
Merci d'avance
Ci dessous mon code qui fonctionne :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > 
<head> 
<title>Relance litiges</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
</head> 
<body> 
<script type="text/javascript"> function GereChkbox(conteneur, a_faire) { 
var blnEtat=null; 
var Chckbox = document.getElementById(conteneur).firstChild; 
while (Chckbox!=null) { if (Chckbox.nodeName=="INPUT") 
if (Chckbox.getAttribute("type")=="checkbox") { blnEtat = (a_faire=='0') ? 
false : (a_faire=='1') ? true : (document.getElementById(Chckbox.getAttribute("id")).checked) ? 
false : true; document.getElementById(Chckbox.getAttribute("id")).checked=blnEtat; } Chckbox = Chckbox.nextSibling; } } 
</script> 
<form> 
<br/> 

<input type="button" value="Tout cocher" onClick="GereChkbox('div_chck','1');">
<input type="button" value="Tout décocher" onClick="GereChkbox('div_chck','0');">

<?php
echo "<div id=\"div_chck\">";
include("../connexion.php");
$req = "SELECT * FROM `retours` where `lr`='L' AND `date_reclam`!='0000-00-00' AND `cloture`='0000-00-00' and `erreur`!='TRANSPORT' ORDER BY cial,fourn";
$res = $conn->query($req); 
$nb=mysqli_num_rows($res);
$i=0;
while ($data = mysqli_fetch_array($res)) {
$i++;
$id=$data['id'];
//echo "<tr><td>";
echo "<input type=\"checkbox\" name=\"checkbox".$i."\" id=\"checkbox".$i."\" value=\"".$i."\">".$id."<br>";
//echo "</td></tr>";
}
?>
</div>
</table>
</form> 
<noscript> <a href="http://www.editeurjavascript.com/">ajax</a> </noscript> 
</body> </html> 

Configuration: Windows / Firefox 63.0
Afficher la suite 

Votre réponse

2 réponses

Messages postés
24625
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 février 2019
1857
0
Merci
Bonjour,

Déjà, remplace ton code par celui la
echo "<input type='checkbox' name='checkbox[".$i."]' id='checkbox".$i."' value='".$i."' class='chkbx'>".$id."<br>";

comme tu peux le voir, j'ai ajouté une class (entre autres choses...)
On va donc pouvoir se servir de la class comme "selecteur"
function GereChkbox(className,etat){
  var clist=document.getElementsByClassName(className);
  for (var i = 0; i < clist.length; ++i) {
    clist[i].checked = etat==1 ? "checked" : false; 
  }
}


et pour les boutons
<input type="button" value="Tout cocher" onClick="GereChkbox('chkbx','1');">
<input type="button" value="Tout décocher" onClick="GereChkbox('chkbx','0');">


Cordialement, 
Jordane                                                                 
Commenter la réponse de jordane45
Messages postés
76
Date d'inscription
lundi 16 septembre 2013
Dernière intervention
1 février 2019
1
0
Merci
MAGNIFIQUE !
Ca fonctionne parfaitement !
Mille merci, Jordane, tu m'otes une belle épine du pied...
Commenter la réponse de isa--