Вы можете использовать hook_form_alter () и добавить новое поле выбора со списком парных значений ключей, которые вам нужны в веб-форме. А затем используйте javascript для обновления того, какое значение поля отображается в поле HR Business Partner при изменении, которое, кстати, также должно быть добавлено через ваш hook_form_alter. Вы можете использовать таксономию для ведения списка департаментов / деловых партнеров, которые будут заполнять ваш департамент и деловых партнеров.
Напишите некоторый javascript для динамического обновления ваших исходных полей, не добавленных через form_alter, при изменении. Я бы предложил сделать два текстовых поля в ваших компонентах веб-формы, которые будут содержать значение из вашей формы, изменить добавленные поля. Чтобы выбранные пользователем значения были сохранены в вашей форме.
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 вы можете включить всю свою логику, чтобы проверить, какое значение выбрано в поле «Отдел», а затем отобразить правильное значение в полях «Партнеры». В то же время обновите исходные поля, добавленные в виде текстовых полей в пользовательском интерфейсе компонентов веб-формы.