Page 1 sur 1

Input type="radio"

Posté : 16 mai 2011, 11:36
par Jonathan
Bonjour,

J'ai une question qui est sûrement toute bête. En fait j'ai un formulaire, et dans celui-ci, on a des boutons de type radio. Ca ressemble à ça :


Echéance du projet :
o 3 mois
o 6 mois


A la fin du formulaire, il y a un captcha. Or, si l'utilisateur entre un mauvais code, il est renvoyé sur la page du formulaire. J'aimerais que ce qu'il a déjà entré soit toujours présent ! S'il avait coché "6 mois", je voudrais qu'elle le soit encore... Comment faire ?




Voici mon code, qui ne fonctionne évidemment pas :
$echeance = $_SESSION['echeance'];

		if ($echeance="3m")
		{
		echo'<span class="TexteFicheP"><input type="radio" name="echeance" value="3 mois" id="3m" checked/>  <label for="3 mois">3 mois</label><input type="radio" name="echeance" value="6 mois" id="6m"/> <label for="6 mois">6 mois</label></span>';
		}
		else if ($echeance="6m")
		{
		echo'<span class="TexteFicheP"><input type="radio" name="echeance" value="3 mois" id="3m"/>  <label for="3 mois">3 mois</label><input type="radio" name="echeance" value="6 mois" id="6m" checked/> <label for="6 mois">6 mois</label></span>';
		}

Re: Input type="radio"

Posté : 16 mai 2011, 11:43
par misterflo
Salut,

plusieurs erreurs :

- Il vaut mieux utiliser elseif et non else if avec un espace entre else et if.

- Pour tester une égalité c'est avec 2 = (ou 3 dans certains cas).

- Et pour check le bon radio c'est checked="checked"


Ce qui donnerai pour ton code corrigé :
$echeance = $_SESSION['echeance'];

                 if ($echeance == "3m")
                 {
                 echo'<span class="TexteFicheP"><input type="radio" name="echeance" value="3 mois" id="3m" checked="checked"/>  <label for="3 mois">3 mois</label><input type="radio" name="echeance" value="6 mois" id="6m"/> <label for="6 mois">6 mois</label></span>';
                 }
                 elseif ($echeance == "6m")
                 {
                 echo'<span class="TexteFicheP"><input type="radio" name="echeance" value="3 mois" id="3m"/>  <label for="3 mois">3 mois</label><input type="radio" name="echeance" value="6 mois" id="6m" checked="checked"/> <label for="6 mois">6 mois</label></span>';
                 }

Re: Input type="radio"

Posté : 16 mai 2011, 12:07
par Jonathan
Bonjour,

Merci de ton aide, mais même en faisant ce que tu me dis, ça ne marche pas... :(
Il semble y avoir un problème avec le else if, il n'entre même pas dedans. Mais à quel niveau ? Je ne vois pas...

Re: Input type="radio"

Posté : 16 mai 2011, 12:11
par misterflo
Vérifie que le $echeance aie bien 3m ou 6m comme valeur.

D'ailleur dans mon code au dessus j'avais oublié de corriger l'erreur du elseif :mrgreen:

Re: Input type="radio"

Posté : 16 mai 2011, 12:16
par Jonathan
Oui, j'ai corrigé moi-même pour le "elseif" :wink:
Vérifie que le $echeance aie bien 3m ou 6m comme valeur.
C'est à dire ? Désolé, j'ai oublié de préciser que je suis novice...

Re: Input type="radio"

Posté : 16 mai 2011, 12:41
par misterflo
Et bien $echeance est sensé valoir 3m ou 6m, pour vérifier qu'il contient bien une de ces 2 valeurs, juste après le
$echeance = $_SESSION['echeance'];
tu rajoute un
echo $echeance;
// Ou bien
var_dump($echeance);
Ensuite dans ton navigateur web tu vérifie la valeur que te ressortira le echo ou le var_dump()

Re: Input type="radio"

Posté : 16 mai 2011, 14:15
par Jonathan
Ah oui d'accord ! Désolé de mon ignorance...
Alors j'ai fait le test, et il contient bien les bonnes valeurs. Il les a en mémoire, le problème se situe donc au niveau de l'affichage, si je ne m'abuse...

Re: Input type="radio"

Posté : 16 mai 2011, 14:29
par misterflo
Etrange, mon code au dessus marche parfaitement pourtant, par contre il serait bon de le passer au validateur W3C pour corriger les erreurs HTML.

http://validator.w3.org/

Re: Input type="radio"

Posté : 16 mai 2011, 14:32
par Jonathan
C'est bon ! En fait, je mettais if ($echeance=="3m"), alors qu'il fallait mettre if ($echeance=="3 mois")...

Merci de ton aide, à bientôt...

Re: Input type="radio"

Posté : 16 mai 2011, 14:35
par misterflo
Héhé effectivement, je n'ai pas fait attention aux value dans le HTML. :wink: