Aller au contenu

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


Sujets conseillés

Posté

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.

Posté

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 :)

Posté

Salut,

Je crois que la "bonne" écriture est

checked="checked"

même si ça marche avec seulement checked

:smartass:

Posté

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

Posté

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 ;-)

Posté
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:\....

Posté
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:

Posté (modifié)

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
Posté
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:

Posté

essaie en ajoutant un espace avant le "?>" fermant ton code php... c'est peut etre justa ca...

Posté
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....

Posté

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...

Posté
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... :(

Posté

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...

Posté
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...>

Posté

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" ' : ''):'' ?> \>

Posté

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 ??

Posté

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?> />

Posté
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"' : ''; ;)

Posté

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

Veuillez vous connecter pour commenter

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



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