Lecture d'un checkbox

Eléphant du PHP | 60 Messages

02 avr. 2006, 21:44

Dans un formulaire, j'ai notamment :

...<input type='checkbox' name='frm_annuaire' value='ON'>...

Dans un autre fichier PHP j'ai :
$flgAnnuaire = $_POST['frm_annuaire'];
Si je coche j'ai bien $flgAnnuaire = ON

Si je ne coche pas, je génère une erreur "Undefined index: frm_annuaire in..."

Savez vous pourquoi ?

Amicalement

Stéphane[/code][/php]

Eléphant du PHP | 451 Messages

02 avr. 2006, 21:49

Pour qu'une checkbox propage sa valeur, il faut qu'elle soit cochee, je regarde, je crois qu'il faut mettre checked, je vérifie et te donne un exemple...

C'est bien ça, dans le code qui suit :
<?php
reset($_POST);
while (list($key, $val) = each($_POST )) {
	echo "<BR>$key -> $val";
	$$key=$val;
}
echo "<FORM action=";
echo $_SERVER["PHP_SELF"];
echo " method=\"post\">";

echo "<BR><input type='checkbox' name='frm_annuaire1' value='ON'> ON";
echo "<BR><input type='checkbox' name='frm_annuaire2' checked value='OFF'> OFF";
echo "<BR><INPUT TYPE=submit>";
echo "</form>"
?>
Le formulaire est présenté avec la valeur OFF cochée par défaut carb j'ai ajouté checked dans la ligne de la checkbox.
Les radio boxes marchent sur le même principe mais on ne peut en sélectionner qu'une seule...
(Les checkboxes doivent avoir un nom différent.)
Modifié en dernier par jpaul le 02 avr. 2006, 21:56, modifié 1 fois.
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 avr. 2006, 21:50

Salut,
Savez vous pourquoi ?
Oui parceque seul les cases qui sont cochées sont envoyées et donc lors de la récupération $_POST['frm_annuaire'] n'existe pas.

Regarde le sujet de la FAQ sur l'opérateur ternaire ( permet de tester l'existence de la variable)

Si tu en as plusieurs regarde aussi CECI

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 60 Messages

03 avr. 2006, 20:46

Merci beaucoup les amis, j'ai traité mon problème de la façon suivante :
$flgAnnuaire = (isset($_POST['frm_annuaire'])) ? TRUE : FALSE;
A bientôt

Stéphane