public function MailchimpSignupPageForm::ajaxSubmit in Mailchimp 8
Same name and namespace in other branches
- 2.x modules/mailchimp_signup/src/Form/MailchimpSignupPageForm.php \Drupal\mailchimp_signup\Form\MailchimpSignupPageForm::ajaxSubmit()
Ajax submit handler.
Parameters
array $form: The form itself.
\Drupal\Core\Form\FormStateInterface $form_state: The current form state.
Return value
\Drupal\Core\Ajax\AjaxResponse A ajax response.
File
- modules/mailchimp_signup/ src/ Form/ MailchimpSignupPageForm.php, line 392 
Class
- MailchimpSignupPageForm
- Subscribe to a Mailchimp list/audience.
Namespace
Drupal\mailchimp_signup\FormCode
public function ajaxSubmit(array $form, FormStateInterface $form_state) {
  $response = new AjaxResponse();
  $response_wrapper_id = '#' . $form['actions']['submit']['#ajax']['response_wrapper'];
  // Simply return any status messages as a content the the response wrapper.
  $status_messages = [
    '#type' => 'status_messages',
  ];
  $content = \Drupal::service('renderer')
    ->renderRoot($status_messages);
  $response
    ->addCommand(new HtmlCommand($response_wrapper_id, $content));
  // Also add an extra class to the form itself to signify the form changed.
  $form_wrapper_id = '#' . Html::getId($this->formId);
  $response
    ->addCommand(new ChangedCommand($form_wrapper_id));
  // Reset form values if submission was successful.
  if ($form_state
    ->get('mailchimp_success')) {
    $response
      ->addCommand(new InvokeCommand("{$form_wrapper_id} form,{$form_wrapper_id}", 'trigger', [
      'reset',
    ]));
  }
  return $response;
}