Webフォームから特定のフィールドの送信された値を印刷/エコーするにはどうすればよいですか?これをWebフォーム2で行う必要があります2 PDFモジュールなので、生成されたPDFの出力をより適切にカスタマイズできます。Drupal単純なf_nameを取得するのは素晴らしいことです。
また、Webform APIにももっと関わり始めたいと思います。
つまり
名:送信された名前の値
最近の3.xおよび4.xバージョンの webformにはフックベースのAPIがあります を使用して、送信されたwebform値で何かを行うことができます。
hook_webform_submission_insert() または hook_webform_submission_update() のように見てください(たとえば、Webフォームでドラフトが有効になっている場合、最終的な送信はisNew == FalseおよびisDraft == FalseでのUPDATE呼び出しです。 )。
関数はパラメータ$submission
を受け取ります。これは、送信されたフォームの値のPHP配列です...そこから好きなことができます。
ページの送信直後にWebフォームの値を取得するために、グローバル$_POST
変数。
または、正しいWebフォーム送信をロードする必要があります。
Drupal 7(これに従って 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でWebフォームの送信を取得する例です。
$entity = \Drupal::entityTypeManager()->getStorage('webform')->load('my_webform');
$form = $entity->getSubmissionForm();
$elements = $form['elements'];
drush
を使用した例を次に示します。
drush ev 'print_r(\Drupal::entityTypeManager()->getStorage("webform")->load("repairs_taps")->getSubmissionForm()["elements"]);'
Drupal 5-7では、 webform_get_submissions
関数。
Drupal 8ソリューション:
$entity = \Drupal::entityTypeManager()->getStorage('webform')->load('my_webform');
$form = $entity->getSubmissionForm();
$elements = $form['elements'];
現時点では、Drupal 8)に関数webform_get_submissions()はありません(D7およびD6に存在します)。上記の行は、特定のWebフォームの送信を取得するのに役立ちます。