// We need to return the part of the form (or some other content) that needs
// to be re-rendered so the browser can update the page with changed
// content. It is up to the #ajax['callback'] function of the element (may
// or may not be a button) that triggered the Ajax request to determine what
// needs to be rendered.
$callback = NULL;
if (($triggering_element =
$form_state->
getTriggeringElement()) &&
isset($triggering_element['#ajax'
]['callback'
])) { $callback =
$triggering_element['#ajax'
]['callback'
];
} $callback =
$form_state->
prepareCallback($callback);
if (empty($callback) || !
is_callable($callback)) { throw new HttpException(500, 'The specified #ajax callback is empty or not callable.'
);
} $result =
call_user_func_array($callback,
[&
$form, &
$form_state,
$request]);
// If the callback is an #ajax callback, the result is a render array, and
// we need to turn it into an AJAX response, so that we can add any commands
// we got earlier; typically the UpdateBuildIdCommand when handling an AJAX
// submit from a cached page.
if ($result instanceof AjaxResponse
) { $response =
$result;
}