8795 sujets

Développement web côté serveur, CMS

Bonsoir,

J'ai en fait un formulaire avec des input de type texte ainsi que des bouton radio avec des value allant de 1 à 7.

Au submit, quand il y a des erreurs dans mon formulaire (par exemple des champs non remplis) j'affiche des messages d'erreur à côté des champs concernés et donc je fais un isset de ma variable envoyé dans la value de mes champs pour que les valeurs soit conservées et que l'utilisateur n'ai pas a tout retappé. J'aimerais appliqué la même chose pour mes boutons radio, donc que si il y a une erreur dans un de mes champs le bouton radio reste coché avec la valeur telle qu'elle était avant d'appuyer sur mon bouton submit. Dans mon cas à l'envoye du formulaire, le bouton radio que j'avais sélectionné n'est plus coché (ce qui est en fait le comportement par default d'un formulaire à l'envoye, il vide les champs).

Comment pourrais-je faire pour conserver la valeur de ma case à cocher et la réafficher automatiquement( si il y a eu des érreurs a l'envoye du formulaire).

Voila j'éspère que j'ai été clair.

Merci d'avance à vous tous Smiley smile
Salut, salut !


<input  type="radio" name="ma_radio" <?php if (isset($_POST["ma_radio"])) { if ($_POST["ma_radio"] == "1") { echo "checked"; } } ?> value="1"  />

<input  type="radio" name="ma_radio" <?php if (isset($_POST["ma_radio"])) { if ($_POST["ma_radio"] == "2") { echo "checked"; } } ?> value="2" />


En gros, il faut que tes radios aient le même name, une fois le formulaire submit, les radios seront également récupérées par la méthode POST.

<?php 
if (isset($_POST["ma_radio"])) {  // SI ma_radio A BIEN ÉTÉ POSTÉ
      if ($_POST["ma_radio"] == "1") { // SI ma_radio EST ÉGAL À 1 
         echo "checked"; // je check ma radio
      }
}
?>


Voilà.
Modifié par Tutuguri (20 Aug 2009 - 01:55)
Impeccable, merci pour ta réponse rapide Smiley smile

Tiens petite subtilité, pour unsetté (unchecker) un des bouton radio une fois le formulaire envoyé ?

Merci Smiley cligne
Attention, en xhtml pour être valide, il faut que le code soit :

checked="checked"


Diox a écrit :

Tiens petite subtilité, pour unsetté (unchecker) un des bouton radio une fois le formulaire envoyé ?


Quel est l'utilité ?

EDIT : Je crois avoir compris, une fois ton formulaire envoyé (puisque tu restes sur la même page), avant le traitement du formulaire, fait :


unset($_POST);

Modifié par Super_baloo8 (25 Aug 2009 - 20:50)