Добрый день.
Вопрос к уважаемым знатокам друпала 7. Создаю я форму через Form API, код прилагаю:
function sendMailChiefs_form($form, &$form_state) {
$AllGroups = array(
'4601' => 'TopCheif',
);
$keyAssocArr = key($AllGroups);
$query = db_select('drupal.users', 'u');
$query->fields('u', array('Nceh', 'FIO', 'mail'));
$query->condition('u.Nceh', $keyAssocArr, '=');
$result = $query->execute();
$topChiefFIOFIO = [];
$topChiefMail = [];
$topChiefAll = [];
$topChiefNumb = [];
foreach ($result as $row) {
$topChiefFIO[] = $row->FIO;
$topChiefMail[] = $row->mail;
$topChiefNumb[] = $row->Nceh;
$topChiefAll = array_combine($topChiefMail, $topChiefFIO);
}
// print_r($topChiefAll);
$selected_top_chief = $form_state['values']['select_group'] == '4601' ? $topChiefAll : $form_state['values']['select_group'];
$form = array();
$form['select_group'] = array(
'#type' => 'select',
'#title' => 'Выберете групу пользователей:',
'#options' => $AllGroups,
'#description' => 'Выберите групу',
'#empty_option' => '--Выберите групу--',
'#required' => true,
'#ajax' => array(
'wrapper' => 'main-chief',
'callback' => 'sendMailChiefs_callback',
),
);
print_r($selected_top_chief);
$form['select_top_chief'] = array(
'#type' => 'select',
'#title' => 'Вопрос к членам правления',
'#options' => $selected_top_chief,
'#description' => 'Выберите одного из членов правления',
'#required' => true,
'#ajax' => array(
'wrapper' => 'landing-cities',
'callback' => 'sendMailChiefs_callback',
),
);
$form['submit_button'] = array(
'#type' => 'submit',
'#value' => 'Отправить',
);
print_r($form_state['values']);
return $form;
}
function sendMailChiefs_callback($form, $form_state) {
return $form['select_group'];
}
Как с помощью ajax менять подгрупу селекта ($form['select_top_chief']).
Более детальнее. Есть у меня группа, допустим, Украина, Россия, Беларусь. Когда выбираешь одну из групп нужно что бы в следующем селекте выскакивали их области, регионы. Сейчас оно работает но нужно нажимать сабмит а я хочу что бы оно без доп. нажатий меняло второй селект. Надеюсь доходчиво объяснил, если будут вопросы задавайте :)
P.S.: Спасибо за ответы :)