[RESOLU] Form API: reafficher les données dans le formulaire "source" après soumission

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'ai un petit problème... J'aimerai que lorsque un utilisateur envois un formulaire, le même formulaire soit afficher mais avec les données entré par l'utilisateur.

Ce formulaire est une sorte de calculatrice qui affiche le résultat en dessous, donc j'aimerai pas que l'utilisateur doivent à chaque fois entré toute les données.

Lorsque que j'essaie d'accéder à form_state si je fait un print dans la fonction de construction de mon forumaire j'ai bien les valeurs dans un tableau mais si j'essaie de les assigné à #value ça marche pas :(. Je pense que ces valeurs sont effacé une fois le formulaire soumis en faite tout comme $_POST.

Je dois faire comment?

Merci

EDIT voilà le code...

<?php
function test_financement($form_state) {
   
$age = $form_state['values']['info']['age'];
   
//print $age;
    //$age = '33';
  //Informations indispensables
 
$form['info'] = array(
   
'#type' => 'fieldset',
   
'#title' => t('Informations indispensables'),
   
'#tree' => TRUE,
  );
 
$form['info']['age'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Votre âge'),
   
'#value' => $age, // FIXME doit ce remplir avec la valeur envoyer par $_POST
   
'#size' => 2,
   
'#maxlength' => 2,
   
'#required' => TRUE,
  );
?>
Forum : 
Version de Drupal : 

Salut,

Le comportement par défaut de Drupal est de rediriger le formulaire vers lui-même une fois qu'il a été traité, voilà pourquoi il apparaît vide.

Cette redirection a été implémentée pour éviter que le même formulaire soit posté 2 fois par erreur (en rafraîchissant la page par exemple).

Sous Drupal 5, tu peux annuler cette redirection grâce à un return FALSE; placé à la fin de la fonction de _submit, soit dans ton cas :

<?php
function test_financement_submit(ARGS) {
  return
FALSE;
}
?>

Faudrait essayer sous Drupal 6.

Autre option (non testée) : définir la propriété suivante dans le formulaire :

<?php
$form
['#redirect'] = FALSE;
?>