VIVEZ LE
FOOTBALL !

Posez votre question Signaler

[PHP-HTML] checkbox cochée ou non ? [Résolu]

Yotte 30Messages postés 7 juin 2005Date d'inscription - Dernière réponse le 15 déc. 2011 à 17:55
Bonjour,

j'ai cherché en vain une réponse à ma question sur ce forum.
Voilà mon problème :

j'ai un formulaire HTML dans une première page :
<form>
<p>Que voulez-vous étudier ?
Cocher les cases utiles.
<table border="2" cellpadding="5">
<tr><th colspan="2"><input type="checkbox" name="choix[]" value="a"><a href="a.php">A</a></th></tr>
<tr><th colspan="2"><input type="checkbox" name="choix[]" value="b"><a href="b.php">B</a></th></tr>
<tr><th colspan="2"><input type="checkbox" name="choix[]" value="c"><a href="c.php">C</a></th></tr>
<tr><th width="20%" rowspan="6">autre</th>
<td width="300"><input type="checkbox" name="choix[]" value="d"> <a href="d.php">D</a></td></tr>
<tr><td><input type="checkbox" name="choix[]" value="e"> <a href="e.php">E</a></td></tr>
<tr><td><input type="checkbox" name="choix[]" value="f"> <a href="f.php">F</a></td></tr>
<tr><td><input type="checkbox" name="choix[]" value="g"> <a href="g.php">G</a></td></tr>
<tr><td><input type="checkbox" name="choix[]" value="h"> <a href="h.php">H</a></td></tr>
<tr><td><input type="checkbox" name="choix[]" value="i"> <a href="i.php">I</a></td></tr>
</table> 
</div>
</form>


Dans une deuxième page, je voudrai pouvoir utiliser le fait que les checkbox soient cochées ou non (sans utiliser Javascript puisque je n'ai plus de formulaire dans ma 2ème page). J'ai déjà essayé d'afficher ce qui était coché, en vain :
<? if(isset($_POST['choix']))
	{$_SESSION['choix']=$_POST['choix'];}
else{$_SESSION['choix']=' ';}

echo 'Vous avez choisi d\'étudier  : ';
for ($i=0; $i<sizeof($_SESSION['choix']); $i++)
{if ($_SESSION['choix'] == '')
{echo '';}
else
{echo $_SESSION['choix'][$i].'<br>';}
}
?>


y'a-t-il un moyen de savoir si une case est cochée, un truc du genre
if ($_SESSION['choix'][$i] == 'checked')
?

Merci de votre aide !
Lire la suite 

[PHP-HTML] checkbox cochée ou non »

11 réponses
Réponse
+54
moins plus
Tu es sur la bonne piste pour ce qui est d'utiliser des formulaires avec des tableaux.

Par contre, vu ce que tu veux faire, c'est pas le moyen le plus judicieux.
Appelle tes input <input name="choixA">
Et récupères les par :
$_POST['choixA']
Un input checkbox sans value coché aura une valeur à TRUE donc pour faire le test :
if ($_POST['choixA']) {...} suffit.
Et pour boucler sur tes valeur, tu peux parcourir l'alphabet :
for ($ascii = ord('A'); $ascii <= ord('Z'); $ascii++)
{
    echo chr($ascii);
}

Ou encore, tu peux appeler tes input name="choix1", et faire une boucle avec :
for ($i=0,$i<7,$i++ {
   if ($_POST['choix'.$i]) {
       echo "choix ".$i; }
  }


Sinon, avec un name="choix[]" , tu peux recuperer tes valeur avec :
$tab =$_POST['choix'];
$tab est alors un array, donc
if (isset($tab)) est toujours TRUE.
C'est if (isset($tab['A'])) qu'il faut utiliser.

bon courage !


Flutch - 22 sept. 2011 à 15:12
Merci à StreM pour ces explications claires et détaillées.
Merci à Zhp pour les subtilités, mais pas pour le style un peu agressif pour rien... ;)
BlueScreenJunky - 6 déc. 2011 à 18:26
J'ai adoré le "attention bullshit" XD

En tout cas merci à tous deux =)
Zakizen - 15 déc. 2011 à 17:55
merci a tt le monde pour ces xplications .. et surtout a Zhp pour la remarque.
Ajouter un commentaire
Réponse
+22
moins plus
Bonjour,
J'ai trouvé un exemple qui pourrait vous aider :

#################################
<? if(!empty($_POST["mon_champ"])) { ?>
Vous avez choisi comme option -
<b>
<?
for ($i = 0; $i < count($_POST["mon_champ"]); $i++)
echo $_POST["mon_champ"][$i]." - ";
?>
</b><br><br>
<? } ?>

<FORM method="POST">
<input type="checkbox" name="mon_champ[]"
value=1>Option 1<br>
<input type="checkbox" name="mon_champ[]"
value=2>Option 2<br>
<input type="checkbox" name="mon_champ[]"
value=3>Option 3<br>
<input type="Submit" value="OK">
</FORM>
####################################

Cet exemple vous permet de récupérer la valeur de l'attibut "value" du check coché. Je pense que c'est ce que vous recherchez.
Pour tester cet exemple, allez à la page :
http://www.asp-php.net/tutorial/asp-php/formulaires.php?page=5
Ajouter un commentaire
Réponse
+15
moins plus
pour faire ca facilement, y'a la fonction implode en php qui est tres simple à utiliser est qui renvoi sous forme de string toute les checkbox cochées séparé par un caractère de séparation à definir dans la fonction.
Avec cette technique, aucune boucle à créer !
Ajouter un commentaire
Réponse
+1
moins plus
le réponse de emibru marche nickel
merci :p
Ajouter un commentaire
Réponse
+1
moins plus
hello ,
la solution de emibru est super mais le problème est que dés qu'on sort de la boucle la variable n'a plus de valeur , alors que récupéré les valeurs de checkbos sert a inséré celle-ci dans une table.

donc ma question comment sortir la variable de la boucle en gardant ses valeurs ?
Ajouter un commentaire
Réponse
-3
moins plus
Merci c'est exactement ce que je cherchais
Je vais m'en servir tres prochainement
Ajouter un commentaire
Réponse
-14
moins plus
Bonjour je veux faire exactement la même chose i.e. voir si des checkbox sont à vrai ou pas sur VBA pour excell. Mon gros problème est de faire boucler les checkbox il y en a une centaine. Merci de votre aide
Ajouter un commentaire
Ce document intitulé « [PHP-HTML] checkbox cochée ou non ? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?