Webmaster Hub: Récupération valeur bouton radio et textarea - formulaire - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Récupération valeur bouton radio et textarea - formulaire Noter : -----

#1 L'utilisateur est hors-ligne   Antho03 

  • Groupe : Actif
  • Messages : 25
  • Inscrit(e) : 21-septembre 06

Posté 11 mars 2010 - 18:32

Bonjour,

J'ai créé un formulaire avec entre autres des boutons radios et des textarea. Quand l'utilisateur à fait une erreur, je lui indique dans ma page de traitement dans laquelle j'ai placé un lien qui lui permet de revenir sur la page du formulaire. Je récupère les valeurs de mes différents champs (text, select) avec des variables de sessions sans pb. Je bloque seulement sur les radio et textarea.

mon formulaire :
<?php 
session_start();
?>
...
<form name=...>
...
<input type="radio" name="Zgroupe" value="oui" <?php if($_POST['Zgroupe']=='oui') {echo 'checked="checked"';}?>/>oui
    <input type="radio" name="Zgroupe" value="non" <?php if($_POST['Zgroupe']=='non') {echo 'checked="checked"';}?>/>non

<textarea name="Zautres_entre_groupe" cols="24" rows="5" value="<?php echo $_POST['Zautres_entre_groupe'] ;?>"></textarea>
...
</form>


ma page de traitement :
<?php 
session_start();
...
$_SESSION['Zgroupe'] = $_POST['Zgroupe'];
$_SESSION['Zautres_entre_groupe'] = $_POST['Zautres_entre_groupe'];
...
?>


Mes valeurs ne sont pas récupérées avec ces bouts de code.
J'ai écumé plusieurs forums disant que ce type de code fonctionne mais pas chez moi :??: Où je fais erreur ?

Il ne me reste qu'à faire fonctionner ces 2 fonctions pour terminer mon formulaire...

Merci pour votre aide
0

#2 L'utilisateur est hors-ligne   camillejg 

  • Groupe : Actif
  • Messages : 28
  • Inscrit(e) : 29-octobre 06
  • Genre:Homme
  • Localisation:Toulouse
  • Société:Click Internet

Posté 11 mars 2010 - 19:12

Bonjour Antho03,

Sur ton "if" (<?php if($_POST['Zgroupe']=='oui') {echo 'checked="checked"';}?>) tu fais ta vérification avec ton $_POST['...'], ne serait-ce pas plutôt avec ton $_SESSION['...'] initialisé dans tes traitements ?

Pour le textarea, tu n'as pas de value à définir. Ta valeur doit se trouver entre le <textarea> et </textarea>.
Donc pour toi :
<textarea name="Zautres_entre_groupe" cols="24" rows="5"><?php echo $_SESSION['Zautres_entre_groupe'] ;?></textarea>


Pour vérifier l'ensemble des SESSIONS initialisées lors de ton retour sur le formulaire, tu peux faire "print_r($_SESSION)", qui te permettra de visualiser tout ce qui est rempli.

Bonne chance,
camillejg
0

#3 L'utilisateur est hors-ligne   jcaron 

  • Groupe : Membre+
  • Messages : 844
  • Inscrit(e) : 15-janvier 08
  • Genre:Homme
  • Localisation:Londres

Posté 11 mars 2010 - 19:28

La bonne solution pour un formulaire, c'est d'utiliser le même script pour l'affichage et le traitement. Le script a alors une structure de ce genre:

si (formulaire_a_ete_soumis)
{
  verifier formulaire, stocker les erreurs éventuelles pour chaque champ
  si (pas d'erreurs)
  {
    traitement
    redirect vers autre page
  }
}
afficher formulaire avec valeurs déjà soumises ou valeurs par défaut et erreurs éventuelles
(formulaire doit contenir un input hidden qui va permettre de faire le test formulaire_a_ete_soumis)



Ca évite de stocker tout plein d'infos dans des sessions (ce qui va faire des choses bizarres quand l'utilisateur va remplir le même formulaire par la suite, voire une autre si tu as des noms de variables communs), ça élimine les problèmes de fenêtres multiples, ca te permet d'avoir le formulaire et les erreurs à corriger sur la même page (et même de mettre l'erreur à côté du champ saisi)...

NB: après un POST (ou un GET qui ne serait pas idempotent, i.e. qui a un effet plutôt que juste un affichage), il est toujours utile de faire un redirect vers une page idempotente, ça évite les problèmes avec les reloads éventuels (qui vont remettre des choses en base, renvoyer un nouveau mail, que sais-je...).

Jacques.
0

#4 L'utilisateur est hors-ligne   Antho03 

  • Groupe : Actif
  • Messages : 25
  • Inscrit(e) : 21-septembre 06

Posté 12 mars 2010 - 15:27

Voir le messagecamillejg, le 11 mars 2010 - 19:12, dit :

Bonjour Antho03,

Sur ton "if" (<?php if($_POST['Zgroupe']=='oui') {echo 'checked="checked"';}?>) tu fais ta vérification avec ton $_POST['...'], ne serait-ce pas plutôt avec ton $_SESSION['...'] initialisé dans tes traitements ?

Pour le textarea, tu n'as pas de value à définir. Ta valeur doit se trouver entre le <textarea> et </textarea>.
Donc pour toi :
<textarea name="Zautres_entre_groupe" cols="24" rows="5"><?php echo $_SESSION['Zautres_entre_groupe'] ;?></textarea>


Pour vérifier l'ensemble des SESSIONS initialisées lors de ton retour sur le formulaire, tu peux faire "print_r($_SESSION)", qui te permettra de visualiser tout ce qui est rempli.

Bonne chance,
camillejg


C'était bien ça.

Merci beaucoup camillejg !!

Merci à Jacques aussi pour ses précisions.
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)