Cocher toutes les checkboxes d'un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Cocher toutes les checkboxes d'un formulaire

par d0m » 21 juin 2007, 10:10

merci pour les réponses :pouce:

par Shrell » 12 juin 2007, 17:06

Code : Tout sélectionner

function checkall(valeur) { tab=document.getElementsByTagName('input'); for(var i=0; i<tab.length; i++) { if(tab[i].getAttribute('type')=="checkbox") { tab[i].checked=valeur; } } }
ceci récupère toutes les chebox de la page et les coche selon la valeur que tu lui passes, sans se préoccuper de leur nom/id. Tu peux affiner en ne prenant que les checkbox d'un formulaire précis.

par [Sébastien] » 12 juin 2007, 14:40

Tu peux passer par la méthode getElementsByTagName. Puis tu utilises la méthode match pour vérifie que le nom et le même…

par d0m » 12 juin 2007, 14:33

document.getElementById(...).checked = true;
Peut-être ?
malheuresuement non car je n'ai pas la liste des identifiants contenus dans l'attribut id et ceux ci ne commencent pas à 0 pour s'arreter au nombre de mes cases à cocher

par Klomac » 12 juin 2007, 14:24

Code : Tout sélectionner

document.getElementById(...).checked = true;
Peut-être ?

par d0m » 12 juin 2007, 14:17

bonjour,

je cherche à peu près la même chose,

j'ai un ensemble de cases à cocher ayant pour nom un tableau :
[/code]name="cases_a_chocher[]"[/code]
qui m'est nécessaire pour un traitement php générique :

Code : Tout sélectionner

foreach(cases_a_cocher as case_a_cocher){ ..... }
l'attribut id est occupé par les identifiants d'une base de donnée assez importante donc non exploitable non plus par getElementById

et je cherche dans une fonction javascript à accéder à toutes les cases à cocher de facon générique.
et là effectivement

Code : Tout sélectionner

document.nom_formulaire.case_a_cocher.checked
ne fonctionne pas

une idée pour contourner le problème en gardant le nom des cases sous forme de tableau?

par Snoops » 05 juin 2007, 14:10

Juste une question : pourquoi donner comme identifiant un tableau ???
pour quoi ne pas faire quelque chose du genre :
<?PHP

$i = 0;

while (...)
{
	...
	echo "<INPUT TYPE=\"checkbox\" VALUE=\"\" ID=\"checkbox_".$i."\" />";
	$i++;
	...
}

?>
Puis quelque chose comme :

Code : Tout sélectionner

function cocher_box() { var i = 0; while (document.getElementById('checkbox_' + i)) { document.getElementById('checkbox_' + i).checked = true; i++; } }
Le code est à vérifier mais le raison devrait être de ce genre.

Enfin sauf si tu as une raison particulière pour l'identification de tes CB par tableau !

par Xenon_54 » 05 juin 2007, 01:49

On peut avoir un code simple que l'on peut utiliser pour nos tests?

Je ne suis personnellement pas intéressé à le réécrire pour virer tes requêtes SQL.
Et puisque PHP n'a rien à voir avec ton problème, copie simplement le code HTML généré par ton script. Ce sera plus simple pour tout le monde.

Cocher toutes les checkboxes d'un formulaire

par jed » 04 juin 2007, 14:34

Bonjour, j'ai écrit une fonction en js qui permet de cocher toutes les checkboxes d'un formulaire mais j'ai un problème: ces boxes portent comme nom un tableau. Le js fonctionne correctement avec un nom traditionnel mais les boxes ne se cochent pas avec un tableau. Pouvez vous m'aider svp? Voici mon code:

javascript:
var checkflag = "false";
function check(field) {
if (checkflag == "false") {
  for (i = 0; i < field.length; i++) {
  field[i].checked = true;}
  checkflag = "true";
  return "Tout décocher"; }
else {
  for (i = 0; i < field.length; i++) {
  field[i].checked = false; }
  checkflag = "false";
  return "Tout cocher"; }
}
Formulaire:
$body = "<form name=\"list_comp\" action=\"index.php\" method=\"post\">
		<table witdh=\"80%\" align=\"center\" bgcolor=\"#000000\" cellpadding=\"5\" cellspacing=\"1\">
		<tr>
			<th witdh=\"90%\" bgcolor=\"#ffffff\" align=\"center\">
				nom [modifier] [supprimer]
			</th>
			<th width=\"10%\" align=\"center\" bgcolor=\"#ffffff\">
				par défaut <input type=\"hidden\" name=\"defaut[]\" value=\"99999999999999\" /><br />
				<input type=\"checkbox\" onclick=\"this.value=check(this.form.defaut[])\"> 
			</th>
		</tr>";
		
		$query = mysql_query ('SELECT * FROM competences WHERE matiere = "'.$_GET['matiere'].'" ORDER BY nom');
		while ($competence = mysql_fetch_object ($query))
		{
			$body .= "<tr>
						<td align=\"center\" bgcolor=\"#ffffff\">
							$competence->nom [<a href=\"index.php?modifier=$competence->id\">modifier</a>] [<a href=\"index.php?supprimer=$competence->id\">supprimer</a>]
						</td>
						<td align=\"center\" bgcolor=\"#ffffff\">
							<input type=\"checkbox\" name=\"defaut[]\" value=\"$competence->id\"";
						
						if ($competence->defaut == 1) $body .= " checked";
						$body .=
					"</tr>";
		}
		$body .= "<tr>
		<td bgcolor=\"#ffffff\" colspan=\"2\" align=\"right\">
			<input type=\"submit\" value=\"modifier\" />
		</td>
		</tr>
		</table>
		<input type=\"hidden\" value=\"$matiere->id\" name=\"mat\" />
		</form>";