Aller au contenu

Récupération du "coche" sur un formulaire


easyphp007

Sujets conseillés

Bonjour,

Je souhaiterais réaliser un "quizz" et créer une page de réponses "pré-cochées".

Je viens de mettre en place un formulaire evec des "checkbox" (questions.php) dans lequel j'utilise la méthode "post", ainsi qu'une page ayant des réponses "cochées" (reponses.php). Je souhaiterais récupérer mon coche de "questions.php" sur ma page "reponses.php".

Le but du jeu, c'est d'afficher le "coche" en meme temps que la réponse pré-coché.

Merci pour vos lumières.

Lien vers le commentaire
Partager sur d’autres sites

le code mystère est ::

<?=(($_POST['champ']=="on")?"CHECKED":"")?>

En gros, t'as le formulaire d'un coté :

<input type=checkbox name=champ value='on'>

de l'autre, t'as la réponse :

<input type=checkbox name=champ <?=(($_POST['champ']=="on")?"CHECKED":"")?>>

Où tu regardes la valeur de 'champ'. Si la valeur est égale à 'on', alors

on écrit 'checked', sinon on n'écrit rien :)

Lien vers le commentaire
Partager sur d’autres sites

Merci pour vos réponses rapides.

J'ai adapter les codes, juste que je me retrouve avec une erreur sur la page "reponses.php" lorsque je valide OK sans rien cocher :

"Notice: Undefined index: maVariable in c:\....\... on line 48.

En revanche, si mes choix sont cochés, ils sont bien affiché sur "reponses.php".

J'utilise Easyphp7.1. Serait ce un problème de conf. de php.ini ??

Merci

Lien vers le commentaire
Partager sur d’autres sites

Bonjour easyphp007,

au vu de ton erreur je pense que c'est parce que dans le cas où tu n'as rien coché, la variable "maVariable" dans laquelle tu stockes les réponses n'est pas définie. Il faut donc faire un test avant avec un isset(maVariable) par exemple pour voir si tu as des reponses à traiter ;-)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour easyphp007,

au vu de ton erreur je pense que c'est parce que dans le cas où tu n'as rien coché, la variable "maVariable" dans laquelle tu stockes les réponses n'est pas définie. Il faut donc faire un test avant avec un isset(maVariable) par exemple pour voir si tu as des reponses à traiter ;-)

Bonjour, et merci pour ta remarque.

Je ne suis pas très bon dans ce domaine alors, j'ai fais comme suite sur ma page "reponses.php" :

<input type="checkbox" name=C1 value="1"

<?=if (isset($MaVariable)) {(($_POST['MaVariable']=="on")?"CHECKED":"")}?> \>

\>

En revanche je récupére quelque chose comme :

Parse error: parse error, expecting `','' or `';'' in c:\....

Lien vers le commentaire
Partager sur d’autres sites

Il faudrait plutôt mettre :

<? (isset($_POST['MaVariable'] && $_POST['MaVariable'] == 'on') ? ' checked="checked"' : ''?>

J'ai implémenté donc mon code comme suite :

<input type='checkbox' name=MaVariable value='1' <?php (isset($_POST['MaVariable'] && $_POST['MaVariable'] == 'on')?' checked="checked" ' : '')?> \>

Et j'ai tjs la meme erreur en actualisant la pages :

Parse error: parse error, expecting `','' or `')'' in c:\....

Snif... :unsure:

Lien vers le commentaire
Partager sur d’autres sites

Essaie peut etre plutot ca :

<input type='checkbox' name=MaVariable value='1' <?php (isset($_POST['MaVariable']) && $_POST['MaVariable'] == 'on')?' checked="checked" ' : '')?> \>

ca devrait mieux fonctionner ;-)

Modifié par Jeromnimo
Lien vers le commentaire
Partager sur d’autres sites

Essaie peut etre plutot ca :

<input type='checkbox' name=MaVariable value='1' <?php (isset($_POST['MaVariable']) && $_POST['MaVariable'] == 'on')?' checked="checked" ' : '')?> \>

ca devrait mieux fonctionner ;-)

Désolé JERO.

Je viens de tester :

<input type='checkbox' name=toto value='1' <?php (isset($_POST['toto']) && $_POST['toto'] == 'on')? ' checked="checked" ' : '')?> \>

le ")" a disparu car j'avais effectivement oublié de fermer mais j'obtiens tousjours :

Parse error: parse error in c:\..........on line 45

:mad2:

Lien vers le commentaire
Partager sur d’autres sites

Tu es sûr que c'est de cette ligne qu'il s'agit ? Tu n'as fait aucune autre modif ?

J'ai revérifié, c'est bien la ligne 45 et je n'ai aucun autre motif... :( du moins pour l'instant.....

Je vais redemarrer la machine au cas ou....

Lien vers le commentaire
Partager sur d’autres sites

Tu as essayé ce que je t'ai dit plus ? essaie avec un espace fermant, car la le php interprète surement le ? comme une fermeture de test...

Lien vers le commentaire
Partager sur d’autres sites

Tu as essayé ce que je t'ai dit plus ? essaie avec un espace fermant, car la le php interprète surement le ? comme une fermeture de test...

Oui, j'avais fait ca...

Idem... Je fait un test d'affichage du genre "hello world" à la place de mon <input....>, ca me l'interprete....

Comprend pas trop... :(

Lien vers le commentaire
Partager sur d’autres sites

Je viens juste de voir que tu as mis un slash pour fermer ton input (j'avais pas fait gaffe avant...), il n'y en pas, les balises input sont comme ça :

<input blablabla ... blablabla >

C'est peut etre juste ça...

Lien vers le commentaire
Partager sur d’autres sites

Je viens juste de voir que tu as mis un slash pour fermer ton input (j'avais pas fait gaffe avant...), il n'y en pas, les balises input sont comme ça :

<input blablabla ... blablabla >

C'est peut etre juste ça...

Eh non, je l'avais enleve pour test... pareil. :blush:

ce qui est bizarre, c'est que lorsque je test mon p'tit "hello world" avec le <input ...> enlevé, j'affiche.

Et lorsque je remets le <input...>, plus rien ne s'affiche (message d'erreur habituel), alors que j'avais mis mon "hello world" avant mon <input...>

Lien vers le commentaire
Partager sur d’autres sites

tu peux mettre le code "dans le contexte" ici ? (quelques lignes avant, quelques lignes après, voir toute la page si c'est pas trop long s'il te plait ? La je vois pas, c'est peut etre ailleurs le probleme....

C'est peut etre le && qui passe pas dans un test de cette nature (je suis pas sur de ça... si quelqu'un peut confirmer) Essaie peut etre en cascadant les tests :

<input type='checkbox' name=MaVariable value='1' <?php (isset($_POST['MaVariable']))?(($_POST['MaVariable'] == 'on')?' checked="checked" ' : ''):'' ?> \>

Lien vers le commentaire
Partager sur d’autres sites

Au fait, j'ai raisonner en html et j'ai pondu un truc comme ca... apparement ca marche :

<input type=checkbox name=toto <? if(isset($_POST['toto']) && $_POST['toto'] == 'on')

{

echo (' checked="checked" ');

}

?>

>

Est ce une bonne idée ? si non, quels seraient les inconvenients ??

Lien vers le commentaire
Partager sur d’autres sites

Personnellement, je fais un peu pareil, mais en moins de ligne :

<?php
$checked = (isset($_POST['toto']) && $_POST['toto'] == on) ? ' checked="checked"' : '';
?>
<input type="checkbox" name="toto"<?=$checked?> />

Oui, Merci pour l'idée sauf que j'aurai ajouté des " " comme cela :

$checked = (isset($_POST['toto']) && $_POST['toto'] == "on") ? ' checked="checked"' : ''; ;)

Lien vers le commentaire
Partager sur d’autres sites

Re-bonjour,

Je souhaiterais afficher mes "checkbox" afin de les comparer au résultat pré-cochés...

D'après vous, ce code est t'il logique ??

<?php

$affiche = "toto, tata, ....etc....";

$checked = (isset($_POST['affiche']) && $_POST['affiche'] == "on") ? ' checked="checked"' : '';

echo "Le résultat est $checked "

?>

Merci

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...