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

Catégories:

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,
  );
?>

#

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;
?>

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

oups.. j’avais pas mis la bonne adresse e-mail dans mon compte, donc je n’ai pas vu ta réponse. Mais merci c’est exactement ça.

Syndiquer le contenu