Создание таблицы данных, представленных в форме отправки с использованием ajax без сохранения данных в базе данных. - Drupal8 - PullRequest
0 голосов
/ 03 марта 2020

Вот требование, которое мне нужно выполнить в 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;
}

Любая помощь или руководство высоко ценится. Благодаря.

...