web-dev-qa-db-fra.com

Obtenir par programme les valeurs de champ soumises par le formulaire Web

Comment puis-je imprimer/faire écho à la valeur soumise d'un champ spécifique dans un formulaire Web? Je dois le faire dans le formulaire Web 2 PDF afin que je puisse mieux personnaliser la sortie des fichiers PDF générés. Im assez nouveau pour Drupal donc un exemple de la façon dont ce serait génial d'obtenir un simple f_name.

J'aimerais également commencer à m'impliquer davantage avec l'API Webform.

c'est à dire

Prénom: VALEUR DU NOM SOUMIS

4
Tom Kiddle

Dans les versions 3.x et 4.x récentes de le formulaire Web a une API basée sur le hook pour vous permettre de faire des choses avec les valeurs du formulaire Web soumises.

Regardez comme hook_webform_submission_insert () ou hook_webform_submission_update () (si votre formulaire Web a activé les brouillons par exemple, la soumission finale est un appel UPDATE avec isNew == False et isDraft == False ).

Les fonctions prennent un paramètre $submission qui est un PHP tableau des valeurs de formulaire soumises ... Vous pouvez faire ce que vous voulez avec eux à partir de là.

2
tenken

Pour obtenir les valeurs du formulaire Web juste après la soumission de la page, elles sont stockées dans le fichier global $_POST variable.

Sinon, vous devez charger la bonne soumission de formulaire Web.

Drupal 7

Voici un exemple comment le faire dans Drupal 7 (selon ce post ):

module_load_include('inc', 'webform', 'includes/webform.submissions');
$submissions = webform_get_submissions(array('nid'=> 123));

foreach ($submissions as $submission){
    foreach ($submission->data as $row=>$data){
        print '<pre>'; print_r($row); print '</pre>';
        print '<pre>'; print_r($data); print '</pre>';
    }
}

Drupal 8

Voici l'exemple pour obtenir la soumission du formulaire Web en Drupal 8:

$entity = \Drupal::entityTypeManager()->getStorage('webform')->load('my_webform');
$form = $entity->getSubmissionForm();
$elements = $form['elements'];

Voici l'exemple utilisant drush:

drush ev 'print_r(\Drupal::entityTypeManager()->getStorage("webform")->load("repairs_taps")->getSubmissionForm()["elements"]);'
2
kenorb

Dans Drupal 5-7, il semble que l'on puisse utiliser le webform_get_submissions fonction.

1
user1359

solution Drupal 8:

$entity = \Drupal::entityTypeManager()->getStorage('webform')->load('my_webform');
$form = $entity->getSubmissionForm();
$elements = $form['elements'];

Pour le moment, il n'y a pas de fonction webform_get_submissions () dans Drupal 8 (comme dans D7 et D6). Les lignes ci-dessus peuvent aider à obtenir les soumissions d'un formulaire Web spécifique.

0
drupalfan