Case à cocher
Posté : 21 août 2007, 11:10
Bonjour tout le monde, j'ai un petit problème de case à cocher.
Alors en fait, je dispose d'un tableau avec 4 cellules. Pour chaque cellule, j'ai un titre des et des cases à cocher. A coté de ce titre, j'ai mis une case à cocher qui permet de sélectionner toutes les cases de la cellule.
Mais mon problème est que quand je clique sur une de ces checkbox (à côté du titre) toutes mes checkbox (de mon tableau en entier) sont sélectionnées au lieu d'avoir uniquement celle de la cellule de sélectionnées.
Je ne vois pas où est mon erreur.
Voici mes codes :
Alors en fait, je dispose d'un tableau avec 4 cellules. Pour chaque cellule, j'ai un titre des et des cases à cocher. A coté de ce titre, j'ai mis une case à cocher qui permet de sélectionner toutes les cases de la cellule.
Mais mon problème est que quand je clique sur une de ces checkbox (à côté du titre) toutes mes checkbox (de mon tableau en entier) sont sélectionnées au lieu d'avoir uniquement celle de la cellule de sélectionnées.
Je ne vois pas où est mon erreur.
Voici mes codes :
<?/*---------------------------------*/
//on ouvre le fichier criteria.xml
$criteriaFile = $cfg['ressources_root'].'/criteria.xml';
$domCriteria = new DOMDocument('1.0','UTF-8');
$domCriteria->load($criteriaFile);
$xpCriteria = new DOMXPath($domCriteria);
$cat_criteria = $domCriteria->getElementsByTagName('cat');
$result_find_criteria = $domCriteria->getElementsByTagName('criteria');
echo "<table align='center' width='100%'><tr>";
$j='0';
foreach($cat_criteria as $cat){
$name_cat = $cat->getAttribute('name');
$id_cat = $cat->getAttribute('id');
echo "<td valign='top'><br /><strong><h2 style='font-size: 14px;'>".$name_cat." : </strong><input type='checkbox' id='valide$id_cat' onChange='if (document.getElementById(\"valide$id_cat\").checked) { cochetout(); } else { decochetout(); } ;'></h2><br><br>";
foreach ($cat->childNodes as $criteria)
{
if ($criteria->nodeType != XML_ELEMENT_NODE) continue;
if ($criteria->tagName == 'criteria')
{
$name_criteria = $criteria->getAttribute('name');
$id_criteria = $criteria->getAttribute('id');
echo "<ul><input type='checkbox' id='crit[]' name='crit[]' value='$id_cat/$id_criteria'>$name_criteria</input></ul>";
}
}
$j++;
}
echo "</tr></table>";
?>
et mes fonctions javascript : Code : Tout sélectionner
function cochetout() {
var liste = document.getElementsByTagName('input');
for (var i = 0; i < liste.length; ++i) {
var obj = liste[i];
if (obj.type == 'checkbox' && obj.id == 'crit[]') {
obj.checked = true;
}
}
}
function decochetout() {
var liste = document.getElementsByTagName('input');
for (var i = 0; i < liste.length; ++i) {
var obj = liste[i];
if (obj.type == 'checkbox' && obj.id == 'crit[]') {
obj.checked = false;
}
}
}