gestion des boutons radios dans un formulaire

Eléphanteau du PHP | 45 Messages

03 janv. 2007, 22:13

Je travaille tjrs sur mon site avec le formulaire et je suis toujours (bien qu'un peu moins qu'avant) débutant en php.
J'ai une question toute simple concernant le traitement des radios dans le formulaire.

Code : Tout sélectionner

<td width='30' height='50' align='center' valign='middle'> <?php $st='selected="true"'; ?> <input type='radio' name='hotel' value='rhone' <?php if($_POST["hotel"]=='rhone') {echo $st;} ?> /> </td> [...] <td valign='middle' align='center' width='30' height='50'> <input type='radio' name='hotel' value='berg' <?php if($_POST['hotel']=="berg") {echo $st;} ?> /> </td>
Ceci est basé sur un howto chopé sur le net, selon lequel cette inscription permettrait aux données du visiteur d'être affichées à nouveau si le formulaire devait être réinitialisé, faute que tous les champs soient remplis.
Le problème est que, bien que je puisse traiter les données (echo("$_FORM['hotel']"); renvoi la bonne valeur), le radio correspondant au choix du visiteur n'est pas coché si le formulaire a dû être relancé car tous les champs n'étaient pas remplis.
Au fait, c'est exactement le même problème que mon post précédent (form sans trim), sauf qu'il s'agit de radios qui ne s'affichent pas et non de textes qui se font raccourcir (ça doit pas avoir bcp de sens).
Merci bcp en tout cas,
jr
jr

HD
Mammouth du PHP | 1181 Messages

03 janv. 2007, 22:21

dans la balise "input" fait le même test php sauf que cette fois si la condition est remplie on affiche

Code : Tout sélectionner

checked="checked"
:!:
<input type='radio' name='hotel' value='berg' <?php if($_POST['hotel']=="berg") {echo "checked='checked'"} ?> /> 
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphanteau du PHP | 45 Messages

04 janv. 2007, 11:58

Excellent, merci bcp.
jr

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 janv. 2007, 12:11

La solution de HD est bonne. Ton problème est effectivement plus un p'tit soucis au niveau du html généré, et vient en fait d'ici :
<?php $st='selected="true"'; ?> 
L'attribut "selected" est destiné aux options des listes déroulantes uniquement. Pour les cases à cocher et les boutons radio, c'est l'attribut "checked" qu'il faut utiliser :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...