首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何管理多页网页上的选择选项?

如何管理多页网页上的选择选项?
EN

Drupal用户
提问于 2022-08-24 01:01:44
回答 1查看 33关注 0票数 0

有一个多页的网页。

  • 第1页:选择国家
  • 第2页:选择产业
  • 第3页:从支持国家和工业的人名单中选择。

#验证处理程序添加

代码语言:javascript
复制
$form['#validate'][] = '_cbifasttrackcert_webform_validate_sector_country';

将项目添加到列表中

代码语言:javascript
复制
$verifier_options = $verifierHandler->formatVerifierOptions($verifiers);
$form['#node']->webform['components'][$choose_verifiers_cid]['extra']['items'] = 
$verifier_options;
$form_state['webform']['component_tree']['children'][$choose_verifiers_cid]['extra']['items'] = $verifier_options;

这在整个表单中都很好,因为在节点列表中有一个检查值,所以不会提交这些值。

挑战是通过电子邮件发送基于值的响应,因为只有$submission可用。

在提交webform时,node_load用于在select.inc中加载一个干净的选项版本。这些选项用于检查是否提交了任何有效选项,列表中的选项未被丢弃。

web/sites/all/modules/contrib/webform/components/select.inc有_webform_select_options()选项,可以根据令牌提供回调或筛选。

我不知道如何使用这些选项访问form_state?类似地,钩子node_load有允许发现选项的form_state吗?

如何基于令牌筛选选择列表?如何在回调中加载表单数据?

EN

回答 1

Drupal用户

回答已采纳

发布于 2022-08-24 03:25:47

秘诀是在hook_node_load中加载所有可能的响应。即使提交,它们也是一个有效的选择。我使它成为一个关联数组,这样索引就不会改变。

代码语言:javascript
复制
function module_node_load($nodes, $types) {
  $choose_verifier_no_verifier_cid = webform_get_cid($webform_node, MyModuleHelper::CHOOSE_VERIFIER_NO_VERIFIER_WEBFORM_KEY)[0];

  $verifier_options = MyModuleHelper::chooseAllVerifiers();
  $webform_node->webform['components'][$choose_verifiers_cid]['extra']['items'] = $verifier_options;
  $webform_node->webform['components'][$choose_verifier_no_verifier_cid]['extra']['items'] = $verifier_options;
票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/312666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档