Probleme fonction javascript / checkbox

Eléphant du PHP | 54 Messages

21 févr. 2007, 11:06

Bonjour !!

Je voudrais créer une fonction en javascript qui permet d'activer un bouton valider si on a cliquer sur au moin un checkbox.

Donc j'ai fais celà :

Code : Tout sélectionner

function Agree(Terms) { checkobj = Terms; if (document.tableau_valid.valid.checked == true) { document.tableau_valid.valider.disabled = false; } else { document.tableau_valid.valider.disabled = true; } if (document.tableau_valid.valid.checked == true) { document.tableau_valid.valider.disabled = false; } else { document.tableau_valid.valider.disabled = true; } }
Mon code php donne ceci :
echo "<input type='submit' name='valider' value='valider' disabled == 'true' 
onClick= \"return confirm('Êtes-vous sûr de vouloir supprimer cet utilisateur ?');\">
</form>";
Je desactive le bouton au chargement de la page, mais j'ai un soucis à cause de ça :
//On parcourt chaque lignes
while($ligne = mysql_fetch_row($resultat)) {
	echo "\n\t<tr>";
	foreach($ligne as $info)
		echo "\n\t\t<td>$info</td>";
	//Checkbox	
	If ($userLevel >= 50) {
	echo "\n\t\t<td><input type='checkbox' name='valid[{$ligne['0']}]' value='0' onClick='document.tableau_valid.disabled == 'false'/></td>";
	echo "\n\t</tr>";
	}
Ma fonction marche quand je n'ai qu'une seule ligne dans mon tableau, est c'est surement normal vu que j'ai mis :

Code : Tout sélectionner

document.tableau_valid.valid.checked || dans ma fonction javascript
Donc ma question est la suivante, comment je pourrais faire pour généraliser ça à toute les lignes de mon tableau ? :?

Merci d'avance ! :D

Eléphanteau du PHP | 49 Messages

27 févr. 2007, 11:34

Salut,

Je vois un truc tout bête, pour éviter d'avoir une fonction qui teste en permanence tous les checkboxes : utiliser un compteur de cases cochées.

Dans ton code javascript (à l'extérieur des fonctions, bien entendu)

Code : Tout sélectionner

/* Compteur de cases cochées */ var nbCasesCoched = 0 ;
Sur chaque checkbox, tu places un event listener qui appelle la fonction "CheckCheckboxes"

Soit :

Code : Tout sélectionner

<input type="checkbox" ……… onclick="CheckCheckboxes(this.checked)" />
Soit en plaçant l'event listener avec addEventListener dans ton code javascript.

Puis dans ton code javascript, tu fais :

Code : Tout sélectionner

function CheckCheckboxes(unDePlus) { /* Incrémentation ou décrémentation suivant que le checkbox est coché ou non */ nbCasesCoched += unDeplus ? 1 : -1 ; /* Disabilité du bouton en fonction du fait qu'au moins une case à cocher est cochée */ tonBoutonValider.disabled = nbCasesCoched ? false : true ; }
[Les portions de code fournies n'ont pas été testées, peut-être se glisse-t-il des erreurs. Désolé si c'est le cas.].

En espérant que ça répond à ta question et que ça t'offre une solution…

Bien à toi,

Phil

Eléphant du PHP | 54 Messages

01 mars 2007, 11:28

Merci Phil93 !!

Sa marche très bien ! :D

Eléphanteau du PHP | 49 Messages

01 mars 2007, 11:42

Merci Phil93 !!

Sa marche très bien ! :D
Heureux d'avoir pu t'être utile.

Mais attention, la prochaine fois, un coup de règle en bois sur le bout des doigts ! :twisted:

Bien à vous tous,

Phil