Mon objectif est que l'utilisateur soumet le suivi de ce formulaire avec la valeur "Nom du produit" comme "Yyy". Sur Soumettre la page doit recharger mais cette fois "Nom du produit" doit afficher la valye précédente comme par défaut comme dans ce cas "yyy".
Voici mon code ... P>
function addnewproduct_page () { return drupal_get_form('addnewproduct_form',&$form_state); } function addnewproduct_form(&$form_state) { $form = array(); $formproductname['productname'] = array ( '#type' => 'textfield', '#title' => t('Product Name'), '#required' => TRUE, '#size' => '20', ); if (isset($form_state['values']['productname'])) { $form['productname']['#default_value'] = $form_state['values']['productname']; } //a "submit" button $form['submit'] = array ( '#type' => 'submit', '#value' => t('Add new Product'), ); return $form; }
8 Réponses :
Je résolvez habituellement cela en mettant la valeur soumise dans la variable $ _Session dans le crochet de soumission. Ensuite, la prochaine fois que le formulaire est chargé, je vérifie la variable $ _session pour la clé appropriée et mettez la valeur dans le logement #default_value s'il y a quelque chose de présent. P>
Vous pouvez utiliser $ form_state ['Stockage'] dans votre gestionnaire de soumission aux valeurs de saupoudrage entre les étapes. Ajoutez donc une fonction de soumission comme si: puis votre fonction de générateur de formulaire deviendrait: p> rappelez-vous que votre formulaire restera généré aussi longtemps que votre formateur $ ["stockage"] est bourré. Donc, vous aurez besoin d'ajuster votre gestionnaire de soumission et non ($ form_state [Stockage ']) lorsque vous êtes prêt à enregistrer des valeurs à la base de données, etc. p> si votre formulaire ressemble plus à un filtre. Utilisé pour l'affichage plutôt que de stocker des informations, vous pouvez vous en tirer avec juste p> lorsque le formulaire reconstruit, il aura accès à $ form_state ["valeurs"] de l'itération précédente . p> p>
Grande réponse que je cherchais cela depuis des jours! +1
Je ne sais pas si cela fonctionnerait pour vous, mais vous pouvez essayer d'ajouter la touche de cette façon si la variable est définie si la variable est définie. Il va prendre ce problème, mais sinon, vous pouvez utiliser une valeur par défaut. p> p> #default_value code> dans le tableau de formulaire
C'est trop de solution mondiale, surcharge
Drupal le fera par défaut si vous incluez: dans votre tableau $ formesProduitsName. p> p>
Je préfère enregistrer toutes les valeurs en une seule fois lorsque nous parlons de formes complexes:
foreach ($form_state['values'] as $form_state_key => $form_state_value) { $form_state['storage'][$form_state_key] = $form_state['values'][$form_state_value]; }
Pour que quiconque cherche une réponse ici lors de l'utilisation de webform (que je viens de lutter à travers), voici ce que j'ai fini par faire: Remarque: Ajout du 'comme il a été perdu p> p>
Il suffit de simplement ajouter reconstruit = true fera le travail: version: Drupal 7 p> p> p>
Dans mon cas, j'ai eu deux déroulements. Soumettre le formulaire posté à la même page, où je pourrais filtrer une vue et je voulais montrer les options précédemment sélectionnées. Lors de la soumission du formulaire, j'ai construit une chaîne de requête dans le crochet Soumettre: dans le crochet de la construction du formulaire, tout ce que j'ai fait était d'obtenir la chaîne de requête actuelle et utilisée ces valeurs par défaut, comme si: p>