回答:
ステータスメッセージをレンダリングして、anohter AJAXコマンドとして送信できます。
例えば:
$commands = array();
// Add other commands
$commands[] = ajax_command_prepend('div#ajax-status-messages-wrapper', theme('status_messages'));
return array('#type' => 'ajax', '#commands' => $commands);
少なくともこれは、私が直面したときにこの問題を解決した方法です。
Drupal 8の場合
$response = new AjaxResponse();
$status_messages = array('#type' => 'status_messages');
$messages = \Drupal::service('renderer')->renderRoot($status_messages);
if (!empty($messages)) {
$response->addCommand(new PrependCommand('.your_selector', $messages));
}
return $response;
AJAXを使用したDrupal 8フォームの場合、Tim Bozemanによる回答は機能しましたが、メッセージはスタイリングなしで表示されました。これは私のために働いたものです:
$response = new AjaxResponse();
drupal_set_message($action);
$form['messages']['status'] = [
'#type' => 'status_messages',
];
$response->addCommand(new InsertCommand(null, $form['messages']));
return $response;