| > script tout cocher/decocher |
[ Posté par logone ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 10-10-2007 à 12:08 | 4 messages ]
  salut,
J'ai trouve sur le site un script qui m'interesse mais qui par mon manque de connaissance ne fonctionne pas a 100% ci joint le script
<!--
// ==========================
// Script réalisé par Eric Marcus - Aout 2006
// ==========================
// conteneur = id du bloc (<div>, <p> ...) contenant les checkbox
// a_faire = '0' pour tout décocher
// a_faire = '1' pour tout cocher
// a_faire = '2' pour inverser la sélection
function GereChkbox(conteneur, a_faire)
{
var blnEtat=null;
var Chckbox = document.getElementById(conteneur).getElementsByTagName('input');
for (i in Chckbox)
{
if (Chckbox[i].nodeName=="INPUT")
if (Chckbox[i].getAttribute("type")=="checkbox") {
blnEtat = (a_faire=='0') ? false : (a_faire=='1') ? true : (document.getElementById(Chckbox[i].getAttribute("id")).checked) ? false : true;
document.getElementById(Chckbox[i].getAttribute("id")).checked =blnEtat;
}
}
}
//--> |
|
et mes boxs pour exemple
| <input name="paye[<?php echo $i; ?>]" type="checkbox" value="Y" id="paye[]" checked="checked"/> |
|
voici les boutons pour cocher decocher
| <input type="button" class="Style2" onclick="GereChkbox('div_chck','1');" value="Tout cocher" /> |
|
ca fonctionne mais mes boxs sont dans un tableau PHP qui boucle suivant le nombre de resultat et donc qui creer un <table> a chaque fois.
le script detecte la presence du conteneur et le nom de la balise div dans mon exemple je me retrouve avec 2 balises div portant le meme nom mais cela ne fontionne pas.
seule la 1ere balise est prise en compte.
J'espere que quelque'un pourra m'aider.
Merci par avance.
 
|
|
|
[ Posté par EricM ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 10-10-2007 à 12:24 | 4147 messages ]
  Bonjour,
cette ligne| <input name="paye[<?php echo $i; ?>]" type="checkbox" value="Y" id="paye[]" checked="checked"/> |
| laisse supposer que tu auras des ID dupliqués, contrairement aux name qui seront uniques.
Or ce sont les ID qui doivent être uniques 
... sinon, c'est le bugg 
As-tu essayé d'inverser ces 2 références (=> utiliser ta valeur actuelle de "name" pour l'ID et inversement) ?
A+
[Message édité par ericm le 10-10-2007 à 12:25]
________________ L'échec est le fondement de la réussite.
- Lao Tseu -
|
[ Posté par logone ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 10-10-2007 à 12:31 | 4 messages ]
  Salut,
J'ai bien essayé ce que tu m'as dit mais cela ne change rien
en faite pour schematiser voici ce que donne le html
<div id =div_chck>
Le contenu avec les check box
</div>
<div id =div_chck>
Le contenu avec les check box de la seconde ligne de mon tableau PHP
</div>
En faite je pense que c'est la que ca bloque mais je comprends pas trop.
Merci de ton aide
[Message édité par logone le 10-10-2007 à 12:31]
|
[ Posté par EricM ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 10-10-2007 à 13:35 | 4147 messages ]
 
logone a dit
<div id =div_chck>
Le contenu avec les check box
</div>
<div id =div_chck>
Le contenu avec les check box de la seconde ligne de mon tableau PHP
</div>
...je comprends pas trop. |
|
EricM a dit
ce sont les ID qui doivent être uniques 
... sinon, c'est le bugg  |
|
, donc !
A+
________________ L'échec est le fondement de la réussite.
- Lao Tseu -
|
[ Posté par logone ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 10-10-2007 à 14:07 | 4 messages ]
  En faite j'ai 2 blocs de div mais qui portent le meme nom et ce parceque ce tableau est dans une boucle PHP.
A chaque resultat je creé un <table> en faite.
Je sais pas si je me fait comprendre
en faite je pense que le soucis viens de la
| var Chckbox = document.getElementById(conteneur).getElementsByTagName('input'); |
|
ou conteneur contient l'id du div mais ne prend que le 1er id les autres sont ignoré.
Merci
|
[ Posté par EricM ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 10-10-2007 à 15:54 | 4147 messages ]
 
logone a dit
Je sais pas si je me fait comprendre |
|
Heu ... si si, tu te fais bien comprendre 
Mais as-tu lu (et compris) ma réponse ?
Tu as 2 div ayant id =div_chck et c'est interdit !!!
... enfin, tu peux laisser, mais ton script ne marchera pas car le simple fait d'avoir 2 id identiques dans la même page plante ton script.
J'ai bien compris ton pb de boucle PHP, mais y a pas : il faut faire autrement 
PAr exemple, ajoute un compteur qui te permettras de générer :
id =div_chck1
puis
id =div_chck2
etc.
Je sais pas si je me fais comprendre 
A+
________________ L'échec est le fondement de la réussite.
- Lao Tseu -
|
[ Posté par logone ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 10-10-2007 à 16:13 | 4 messages ]
  ok j'ai compris le soucis avec ton histoire de boucle c'est que je peux avoir 50 60 lignes ca me semble pas gagné cette histoire
merci de ton aide
|
[ Posté par EricM ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 10-10-2007 à 16:20 | 4147 messages ]
 
logone a dit
ok j'ai compris le soucis avec ton histoire de boucle c'est que je peux avoir 50 60 lignes ca me semble pas gagné cette histoire |
|
Pas de problème :
fonctionnera aussi bien ...
EDIT : ou plutôt
id ="div_chck50"
car les attributs html doivent être entre quotes 
A+
[Message édité par ericm le 10-10-2007 à 16:21]
________________ L'échec est le fondement de la réussite.
- Lao Tseu -
|
[ Posté par lucas34 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 02-01-2008 à 12:36 | 45 messages ]
  http://www.lucasweb.fr.tc/
________________ http://www.lucasweb.fr.tc/
|