AjaxFormHelperTrait.php in Drupal 9
Same filename and directory in other branches
Namespace
Drupal\Core\AjaxFile
core/lib/Drupal/Core/Ajax/AjaxFormHelperTrait.phpView source
<?php
namespace Drupal\Core\Ajax;
use Drupal\Core\Form\FormStateInterface;
/**
* Provides a helper to for submitting an AJAX form.
*
* @internal
*/
trait AjaxFormHelperTrait {
use AjaxHelperTrait;
/**
* Submit form dialog #ajax callback.
*
* @param array $form
* An associative array containing the structure of the form.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The current state of the form.
*
* @return \Drupal\Core\Ajax\AjaxResponse
* An AJAX response that display validation error messages or represents a
* successful submission.
*/
public function ajaxSubmit(array &$form, FormStateInterface $form_state) {
if ($form_state
->hasAnyErrors()) {
$form['status_messages'] = [
'#type' => 'status_messages',
'#weight' => -1000,
];
$form['#sorted'] = FALSE;
$response = new AjaxResponse();
$response
->addCommand(new ReplaceCommand('[data-drupal-selector="' . $form['#attributes']['data-drupal-selector'] . '"]', $form));
}
else {
$response = $this
->successfulAjaxSubmit($form, $form_state);
}
return $response;
}
/**
* Allows the form to respond to a successful AJAX submission.
*
* @param array $form
* An associative array containing the structure of the form.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The current state of the form.
*
* @return \Drupal\Core\Ajax\AjaxResponse
* An AJAX response.
*/
protected abstract function successfulAjaxSubmit(array $form, FormStateInterface $form_state);
}
Traits
Name | Description |
---|---|
AjaxFormHelperTrait | Provides a helper to for submitting an AJAX form. |