easyphp007 Posté 30 Août 2006 Posté 30 Août 2006 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.
Anonymus Posté 30 Août 2006 Posté 30 Août 2006 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
georges Posté 30 Août 2006 Posté 30 Août 2006 Salut, Je crois que la "bonne" écriture est checked="checked" même si ça marche avec seulement checked
Compte supprimé Posté 30 Août 2006 Posté 30 Août 2006 <input type="checkbox" name="champ" value="1" <?php if($_POST['champ']) echo "checked=\"checked\"";?> \>
easyphp007 Posté 31 Août 2006 Auteur Posté 31 Août 2006 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
Jeromnimo Posté 31 Août 2006 Posté 31 Août 2006 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 ;-)
easyphp007 Posté 31 Août 2006 Auteur Posté 31 Août 2006 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:\....
captain_torche Posté 31 Août 2006 Posté 31 Août 2006 Il faudrait plutôt mettre : <? (isset($_POST['MaVariable'] && $_POST['MaVariable'] == 'on') ? ' checked="checked"' : ''?>
easyphp007 Posté 31 Août 2006 Auteur Posté 31 Août 2006 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...
Jeromnimo Posté 31 Août 2006 Posté 31 Août 2006 (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é 31 Août 2006 par Jeromnimo
easyphp007 Posté 31 Août 2006 Auteur Posté 31 Août 2006 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
Jeromnimo Posté 31 Août 2006 Posté 31 Août 2006 essaie en ajoutant un espace avant le "?>" fermant ton code php... c'est peut etre justa ca...
captain_torche Posté 31 Août 2006 Posté 31 Août 2006 Tu es sûr que c'est de cette ligne qu'il s'agit ? Tu n'as fait aucune autre modif ?
easyphp007 Posté 31 Août 2006 Auteur Posté 31 Août 2006 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....
Jeromnimo Posté 31 Août 2006 Posté 31 Août 2006 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...
easyphp007 Posté 31 Août 2006 Auteur Posté 31 Août 2006 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...
Jeromnimo Posté 31 Août 2006 Posté 31 Août 2006 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...
easyphp007 Posté 31 Août 2006 Auteur Posté 31 Août 2006 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. 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...>
Jeromnimo Posté 31 Août 2006 Posté 31 Août 2006 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" ' : ''):'' ?> \>
easyphp007 Posté 31 Août 2006 Auteur Posté 31 Août 2006 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 ??
captain_torche Posté 31 Août 2006 Posté 31 Août 2006 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?> />
easyphp007 Posté 31 Août 2006 Auteur Posté 31 Août 2006 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"' : '';
easyphp007 Posté 1 Septembre 2006 Auteur Posté 1 Septembre 2006 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant