Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 7 Drupal7:将选定字段实时链接到Drupal7中的文本字段_Drupal 7 - Fatal编程技术网

Drupal 7 Drupal7:将选定字段实时链接到Drupal7中的文本字段

Drupal 7 Drupal7:将选定字段实时链接到Drupal7中的文本字段,drupal-7,Drupal 7,我正在Drupal 7.65上创建一个Web表单来构建订阅表单 目标 我需要做的是:从列表中选择一个角色,并在文本字段中自动显示该角色的关联名称。 正如我所说,名称应显示在其下方的不可修改文本字段中 假设有效,下面的列表(key=>value) 字段:部门 业务经理|业务经理 人力资源顾问|人力资源 培训开发者|培训开发者 从那时起,关联的名称分别是 选项可以出现在文本字段hr\u business\u partner 史蒂夫Abc 格特鲁德Def 荷兰皇家航空公司 因此,当学员选择“人

我正在Drupal 7.65上创建一个Web表单来构建订阅表单

目标

我需要做的是:从列表中选择一个角色,并在文本字段中自动显示该角色的关联名称。 正如我所说,名称应显示在其下方的不可修改文本字段中

假设有效,下面的列表(
key=>value

字段:部门

  • 业务经理|业务经理
  • 人力资源顾问|人力资源
  • 培训开发者|培训开发者
从那时起,关联的名称分别是

选项可以出现在文本字段
hr\u business\u partner

  • 史蒂夫Abc
  • 格特鲁德Def
  • 荷兰皇家航空公司
因此,当学员选择“人力资源”时,“Gertrude Def”的名称应出现在“选择”下方的文本字段中。 我附加了一个mokup,以更好地了解我需要什么

重要 我无法将名称作为值放入列表中,因为关联可以更改,但旧记录应保留以前注册的关联

您可以使用()并将新的选择字段与所需的成对键值列表一起添加到Web表单中。然后使用javascript更新在更改时HR Business Partner字段中显示的字段值,顺便说一句,这也需要通过钩子表单添加。您可以使用分类法来维护部门/业务合作伙伴列表,该列表将填充您的部门和业务合作伙伴

编写一些javascript,在更改时动态更新未通过表单添加的原始字段。我建议在webform组件中创建两个文本字段,它们将保存表单中添加的字段的值。以便用户选择的这些值保存在表单中

function MODULENAME_form_alter(&$form, &$form_state, $form_id) {
if($form_id == "webform_client_form_####"){
        $form['#attached']['js'] = array(drupal_get_path('module','MODULENAME') . '/js/webform.js');
        $form['hr_dept'] = array(
            "#type" => "select",
            "#options" => array("business_manager"=>"Business Manager", "hr_consultant"=>"Human Resources"),
        );
        $partners = taxonomy_get_tree(#); //the VID of the taxonomy

        $list = array("0"=>"None"); //first option

        foreach($partners as $tid => $partner){
            $list[$partner->tid] = $partner->name;
        }

        $form['hr_partner'] = array(
            '#type' => 'select',
            '#options' => $list,
        );
}
    }

在javascript文件/js/webform.js中,您可以包含所有逻辑,以检查在Department字段中选择了哪个值,然后在Partners字段中显示正确的值。同时,更新您在WebFormComponents UI中添加为textfields的原始字段

选中Conditional field module,为每个选项使用“data person”等属性,并在javascript/jquery中选择部门字段更改时的属性值。请参阅示例添加到您可以使用模块生成表单的内容。