Pb cases à cocher

Fermé
umidallas Messages postés 33 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 27 novembre 2007 - 7 août 2007 à 03:26
 Alain42 - 8 août 2007 à 22:47
j'ai un autre problème, peut etre lié à mon problème précédent ( pro message d'erreur mysql ) juste avant posté sur le forum
voilà j'ai des champs où il faut cocher pour la valeur oui, ou pas si non concerné
le problème est que si les champs ne sont pas cochés, et que je valide ca me met un message d'erreur pour chacun comme l'exemple suivant===>

Notice: Undefined index: modern_jazz_adultes in c:\program files\easyphp1-8\www\test2.php on line 18

j'ai testé si coché aucun prob, si non coché j'ai ce message qui apparait à l'ecran

pourquoi?

11 réponses

montre nous le code complet qui récupère les variables
0
voici le code =


pour la partie html=

<p align="left"><span class="Style31">hip_hop_adultes 165 €</span>
<input name="hip_hop_adultes" type="checkbox" value="oui">
<span class="Style31">hip_hop_ados_etudiants 145 €</span> <input name="hip_hop_ados_etudiants" type="checkbox" value="oui">
<p align="left"><span class="Style31">step 165 € </span>
<input name="step" type="checkbox" value="oui">
<span class="Style31">step_etudiants 145 €</span>
<input name="step_etudiants" type="checkbox" value="oui">
<p align="left"><span class="Style31">salsa 165 €</span>
<input name="salsa" type="checkbox" value="oui">
<span class="Style31">modern_jazz_hip_hop_enfants 145 € </span>
<input name="modern_jazz_hip_hop_enfants" type="checkbox" value="oui">
<p align="left"><span class="Style31">formule_gym_et_step 265 €</span>
<input name="formule_gym_et_step" type="checkbox" value="oui">
<span class="Style31">formule_gym_et_step_etudiants 240 €</span>
<input name="formule_gym_et_step_etudiants" type="checkbox" value="oui">
<p align="left"><span class="Style31">formule_liberte_adultes 460 €</span>
<input name="formule_liberte_adultes" type="checkbox" value="oui">
<span class="Style31">formule_liberte_etudiants 360 € </span>
<input name="formule_liberte_etudiants" type="checkbox" value="oui">


pour la partie php =

if(isset($_POST['hip_hop_adultes'])) $metier=$_POST['hip_hop_adultes'];
else $hip_hop_adultes='';

if(isset($_POST['hip_hop_ados_etudiants'])) $metier=$_POST['hip_hop_ados_etudiants'];
else $hip_hop_ados_etudiants='';

if(isset($_POST['step'])) $metier=$_POST['step'];
else $step='';

if(isset($_POST['step_etudiants'])) $metier=$_POST['step_etudiants'];
else $step_etudiants='';

if(isset($_POST['salsa'])) $metier=$_POST['salsa'];
else $salsa='';

if(isset($_POST['modern_jazz_hip_hop_enfants'])) $metier=$_POST['modern_jazz_hip_hop_enfants'];
else $modern_jazz_hip_hop_enfants='';

if(isset($_POST['formule_gym_et_step'])) $metier=$_POST['formule_gym_et_step'];
else $formule_gym_et_step='';

if(isset($_POST['formule_gym_et_step_etudiants'])) $metier=$_POST['formule_gym_et_step_etudiants'];
else $formule_gym_et_step_etudiants='';

if(isset($_POST['formule_liberte_adultes'])) $metier=$_POST['formule_liberte_adultes'];
else $formule_liberte_adultes='';

if(isset($_POST['formule_liberte_etudiants'])) $metier=$_POST['formule_liberte_etudiants'];
else $formule_liberte_etudiants='';

etc.......
0
umidallas Messages postés 33 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 27 novembre 2007
7 août 2007 à 17:27
je sais pas si cette partie du code suffit?????
0
Les checkbox doivent être crées ainsi:

 
 <p align="left"><span class="Style31">hip_hop_adultes 165 €</span>
<input name="choix[]" type="checkbox"  value="hip_hop_adultes">
<span class="Style31">hip_hop_ados_etudiants 145 €</span>
 <input name="choix[]" type="checkbox" value="hip_hop_ados_etudiants">
<p align="left"><span class="Style31">step 165 € </span>
<input name="choix[]" type="checkbox" value="step"> 


etc....

le name="choix[] " te permet ensuite de récupérer dans un array toutes les valeurs de celles qui sont cochées

par $array_case=$_POST['choix'];

ensuite $array_case[0] valeur si case 1 cochée =hip_hop_adultes

etc

Mais j'ai l'impression que tu propose un choix unique puisque tu charges tjs la même variable $metier

Il vaudrait mieux utiliser des boutons radio, un seul choix possible.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
umidallas Messages postés 33 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 27 novembre 2007
7 août 2007 à 18:06
ok je vais changer les oui par le nom de chacun

lol non pour le prob de 'metier' ca ma saoule, j'arrete pas de le modifier mais souvent 'metier' remplace les vrais autres termes
0
umidallas Messages postés 33 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 27 novembre 2007
7 août 2007 à 18:25
j'ai repis selon ce que tu as mis concernant les checkbox Alain42........
Cependant quand je teste ca me marque le message suivant pour chacun
te donne un exemple
Notice: Undefined index: modern_jazz_adultes in c:\program files\easyphp1-8\www\test2.php on line 18

et voici sinon la ligne 18 du .php correspondant

$modern_jazz_adultes = $_POST['modern_jazz_adultes'];

et je sais toujours pas
je sais suis nul

par contre ce type de message n'apparait pas si le champ est cohé dans la page html
0
$modern_jazz_adultes = $_POST['modern_jazz_adultes'];


C'est normal que tu ait indefined index, car les valeurs postées correspondent à des noms de champ, de cases

donc $_POST['modern_jazz_adultes'] recupere la valeur du champ nommé 'modern_jazz_adultes' qui n'existe pas.

Ne t'inquiettes pas tu n'es pas nul, mais le php n'est pas aussi facile que l'on croit, il y a des principes a assimiler.
On a tous tendance à partir bille en tête, il faudrait apprendre progressivement avec de bons tutos (vas voir www.siteduzero.com)

Je persiste à dire que tu devrais utiliser des boutons radio, l'utilisateur ne doit cocher qu'une seule case ?

Je peux te faire le bout de code des boutons radio ou alors va voir le siteduzero
0
umidallas Messages postés 33 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 27 novembre 2007
7 août 2007 à 18:52
merci
bah j'ai déjà créé plus haut dans la page de formulaire des boutons radios qui marchent nickels........

en fait je voulais eviter de tous les mettre comme ca, car il y en a un paquet ( un peu plus d'une dizaine ), c'est pour ca........en fait c'est une liste de différents cours possibles pour l'année, on peut en choisir autant qu'on veut ( de 1 à .....) et c'est pour ca que voulais mettre ca sous cette forme là, pour eviter pour chaque cours de devoir mettre oui ou non des boutons radios


mais je vais regarder sur le siteduzero si je trouve quelque chose pour les options de checkbox
sinon je mettrais tout en boutons radios si je trouve pas
0
Excuses j'avais compris qu'une seule devait être cochée, alors garde la solution des checkbox.

Mais mets le même nom à toutes name="choix[]"

Les [] te renvoient les valeurs dans un array que tu pourra parcourir pour les récuperer.
fais un print_r($_POST['choix']); pour visualiser ce que tu reçois
0
umidallas Messages postés 33 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 27 novembre 2007
8 août 2007 à 19:45
j'ai changé dans le code de la page html donc pour chacun j'ai mis pour tous le name="choix[]" donc ce qui donne en exemple===>
<span class="Style31">formule_liberte_etudiants 360 € </span>
<input name="choix[]" type="checkbox" value="formule_liberte_etudiants">

mais le problème reste le meme, c a dire que si le champ n'est pas coché, ca me marque toujours le meme message d'erreur suivant===>
Notice: Undefined index: formule_liberte_etudiants in c:\program files\easyphp1-8\www\test2.php on line 31

voici comment j'essaye de recupérer la valeur donc d'un champs qui peut etre coché ou non
au niveau du .php ( par exemple donc comme là, voici la ligne 31 du .php==>
$formule_liberte_etudiants = $_POST['formule_liberte_etudiants'];

ce message d'erreur n'apparait uniquement si le champs n'est pas coché, mais le truc c'est qu'il n'est pas obligatoire a cocher
0
Autre solution:

<p align="left"><span class="Style31">hip_hop_adultes 165 €</span>
<input name="choix1" type="checkbox"  value="hip_hop_adultes">
<span class="Style31">hip_hop_ados_etudiants 145 €</span>
 <input name="choix2" type="checkbox" value="hip_hop_ados_etudiants">
<p align="left"><span class="Style31">step 165 € </span>
<input name="choix3" type="checkbox" value="step">
etc...


et la recup en .php:

if(isset($_POST['choix1'])){$hip_hop_adultes=$_POST['choix1']; }
if(isset($_POST['choix2'])){$hip_hop_ados_etudiants=$_POST['choix2']; }
if(isset($_POST['choix3'])){$step=$_POST['choix3']; }

etc...


et tu auras ainsi les variables $hip_hop_adultes="hip_hop_adultes" lorsque coché
$hip_hop_ados_etudiants$="hip_hop_ados_etudiants" lorsque coché
etc..
que tu pouras tester ensuite avec isset et !=""
0