@yarik_gui
back & friend

Drupal 7. Как с помощью ajax менять подгруппу селекта?

Добрый день.
Вопрос к уважаемым знатокам друпала 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.: Спасибо за ответы :)
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
andead
@andead
друпал девелопер, фрилансер
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@yarik_gui Автор вопроса
back & friend
Спасибо, оказалось что print_r имел плохое влияние на поведение кода :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы