【发布时间】:2019-07-02 02:28:20
【问题描述】:
我正在尝试使用 Webform 8.x-5.1 在 Drupal 8 中开发一个多步骤 Web 表单。我编写了一个扩展 Drupal\webform\Plugin\WebformHandlerBase 的 WebformHandler 并使其可用于网络表单。
在网络表单的第一步中,我收集了一个文本字段。在进行一些计算后,我想在第二页的 HTML 元素(Advanced HTML/Text 或 Basic HTML)中显示该文本字段的值。
我已经在 WebformHandler 中覆盖了submitForm(),并在其中将我想要的值分配给了 HTML 元素,如下所示:
$form['elements']['page_name']
['advanced_html_element']['#text'] = '...my HTML...';
使用ksm(),我可以看到这个赋值有效,但是 HTML 元素没有用我的 HTML 呈现:该元素要么不可见,要么包含在表单编辑器中设置的初始值。
显然我错过了一些东西。我应该使用submitForm 以外的东西吗?谁能帮帮我?
【问题讨论】:
-
我已经通过解决眼前的问题取得了进展:我使用了
computed Twig元素并让Ajax 自动更新计算值。但是,对于如何在第 N-1 页收集的数据在第 N 页上显示的一般情况,我仍然没有解决方案。 -
在我看来,Webform 模块对联系表单(网络表单提交数据等,我明确不需要)和对向导的支持很少(例如会话数据)。也许只是前者的文档比较多。
-
我同时发现
$form[...]的赋值应该在alterForm()中,尽管我还看不到表单显示的元素中的更改值。跨度>
标签: drupal-8 wizard drupal-webform multi-step