Создание, продвижение сайтов
компьютерная поддержка
53-02-63

Отправить Webform-у с помощью AJAX

14 января 2017

Пример отправки веб-формы webform_client_form_123 с помощью AJAX:

/**
 * Implements hook_form_FORM_ID_alter(): webform_client_form_123.
 */
function mymodule_form_webform_client_form_123_alter(&$form, &$form_state) {
  $form['actions']['submit']['#ajax'] = array(
    'callback' => 'mymodule_form_webform_client_form_ajax_submit',
    'wrapper' => $form['#id'],
  );
  // Удаляем #pre_render, иначе не будет работать ajax
  unset($form['actions']['submit']['#pre_render']);
}
 
/**
 * Ajax submit.
 */
function mymodule_form_webform_client_form_ajax_submit($form, &$form_state) {
  if (form_get_errors()) {
    return $form;
  }
  else {
    $webform = $form['#node']->webform;
    return check_markup($webform['confirmation'], $webform['confirmation_format']);
  }
}

Есть и соответствующий модуль.

Добавлено 03.03.2015

Способ аяксифицировать все веб-формы открывающиеся в модуле Auto-Dialog:

/**
 * Implements hook_form_BASE_FORM_ID_alter(): webform_client_form.
 */
function MODULENAME_form_webform_client_form_alter(&$form, &$form_state) {
  if ($form['#action'] == base_path() . 'system/ajax' || _autodialog_check_request()) {
    $form['actions']['submit']['#ajax'] = array(
      'callback' => 'MODULENAME_form_webform_client_form_ajax_submit',
      'wrapper' => $form['#id'],
    );
    unset($form['actions']['submit']['#pre_render']);
  }
}
 
/**
 * Ajax submit.
 */
function MODULENAME_form_webform_client_form_ajax_submit($form, &$form_state) {
  if (form_get_errors()) {
    return $form;
  }
  else {
    $webform = $form['#node']->webform;
    return check_markup($webform['confirmation'], $webform['confirmation_format']);
  }
}

Узнайте о нас больше:

Мы предлагаем широкий спект услуг по сайтам и компьютерной поддержке

Создание сайтов

Мы разрабатываем как простые сайты - визитки, так и индивидуальные проекты. Основная система разработки - CMS Drupal.

Узнать подробнее

Продвижение сайтов

Одно из основных направлений работы нашей компании - продвижение сайтов в Саратове и области. Мы поможем Вам с SEO - продвижением сайтов и настройкой и ведением контекстной рекламы в Яндекс Директ.

Бесплатная SEO-консультация

Компьтерная поддержка

Мы оказываем услуги компаниям и частным лицам в области настройки компьютерного оборудования:

  • Настройка роутеров и локальных сетей
  • Установка Windows
  • Оптимизация работы компьютеров
  • Лечение вирусов
  • Восстановление данных с жестких дисков
Узнать подробнее
Сделайте заказ с сайта и получите 10% скидку на услугу

Заказ услуги с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
Заказать бесплатную SEO-консультацию

Запрос бесплатной SEO - консультации с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
Письмо в компанию Райбин

Письмо в компанию RAYBIN

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности