Вот требование, которое мне нужно выполнить в Drupal8.
Добавьте адрес электронной почты пользователя и покажите его в виде таблицы в формате Пользователь введет адрес электронной почты и нажмите кнопку Добавить. кнопка. Затем добавленные электронные письма будут показаны в виде таблицы чуть ниже формы с ссылкой для удаления. Это будет ajaxified форма.
Ниже приведен код, который я использовал.
public function buildForm(array $form, FormStateInterface $form_state) {
$form['email'] = [
'#type' => 'email',
'#placeholder' => $this->t('Enter Email address To Add'),
'#required' => TRUE,
];
// Attach Ajax callback to the Submit button.
$form['actions']['submit'] = [
'#type' => 'submit',
'#value' => $this->t('Add'),
'#ajax' => array(
'callback' => '::ajaxAddEmailRow',
'event' => 'click',
'wrapper' => 'email-row-wrapper',
),
];
$header = [
'email' => t('Email'),
'accounttype' => t('Account Type'),
'permission' => t('Permission Level'),
'operation' => t('Operation'),
];
// For testing only.
$rows[0] = array(
'email' => 'test1@gm.com',
'accounttype' => 'account',
'permission' => 'permission',
'operation' => 'operation',
);
$form['email_rows'] = [
'#type' => 'table',
'#header' => $header,
'#rows' => $rows,
'#prefix' => '<div id="email-row-wrapper">',
'#suffix' => '</div>',
'#empty' => t('No users found'),
];
return $form;
}
Любая помощь или руководство высоко ценится. Благодаря.