@namee

Как отправить drupal ajax?

Доброго дня!
Не спешите, дочитайте до конца.

Форма, выводится в блоке, у формы есть интерактивные методы.

Задача - интерактивно менять содержимое формы на стороне клиента путём вызова метода из другой формы.

Сейчас я реализовал несколько в обход. Добавил невидимую кнопку с вызовом ajax метода. Нахожу её и вызываю метод click(). Но понимаю, что можно это делать без кнопки и более правильно.

$form['opn_1'] = [
            '#type' => 'submit',
            '#submit' => ['::goChange'],
            '#id' => 'opn_1',
            '#value' => '5',
            '#ajax' => [
                'callback' => '::ajaxCallback',
                'wrapper' => 'names-fieldset-wrapper',
                'method' => 'replace',
                'event' => 'click',
                'progress' => array('type' => 'none')
            ],
            '#attributes' => [
              'style' => ['display:none']
            ]
        ];


    public function goChange(array &$form, FormStateInterface $form_state)
    {
        $form_state->set('mode', 5);
        $form_state->setRebuild();
    }


А теперь собственно вопрос, есть ли способ на стороне клиента дёрнуть функцию формы и получить событие, что форма была изменена?
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
andead
@andead
друпал девелопер, фрилансер
Нет. Поскольку формы должны работать с отключённым js, то скрытая кнопка это нормальный способ вызвать ajax.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы