7
votes

Forme Drupal: Voulez-vous afficher la valeur de formulaire précédente comme défaut_value sur la page

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


0 commentaires

8 Réponses :


-1
votes

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.


0 commentaires

15
votes

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: xxx

puis votre fonction de générateur de formulaire deviendrait: xxx

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.

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 xxx

lorsque le formulaire reconstruit, il aura accès à $ form_state ["valeurs"] de l'itération précédente .


1 commentaires

Grande réponse que je cherchais cela depuis des jours! +1



-1
votes

Je ne sais pas si cela fonctionnerait pour vous, mais vous pouvez essayer d'ajouter la touche #default_value dans le tableau de formulaire xxx

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.


1 commentaires

C'est trop de solution mondiale, surcharge



1
votes

Drupal le fera par défaut si vous incluez: xxx

dans votre tableau $ formesProduitsName.


0 commentaires

0
votes

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];
}


0 commentaires

0
votes

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: xxx

Remarque: Ajout du 'comme il a été perdu


0 commentaires

0
votes

Il suffit de simplement ajouter reconstruit = true fera le travail: xxx

version: Drupal 7


0 commentaires

0
votes

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: xxx

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: xxx


0 commentaires