Isolution666
@Isolution666
Full-Stack Developer

Как отправить две формы на одном экшене Yii2?

Здравствуйте.
---
Моя предыстория: лет шесть назад, когда я ещё не ведал про Yii, были такие задачи, отправлять две или три формы с одной страницы, и делалось это просто, по name.
Грубо говоря, если кнопка

<input type="submit" name="send"/>

То в условиях пишешь:

<?php
if(isset($_POST['send'])){
// то происходит это
}
?>


Если у другой формы кнопка:

<input type="submit" name="rezult"/>

То:

<?php
if(isset($_POST['rezult'])){
// то происходит это
}
?>


по логике вещей: Yii2

...
if(isset(Yii::$app->request->post('send')){}
...


если кнопка

<?= Html::submitButton('отправить', ['name' => 'send', 'class' => 'btn btn-primary']) ?>


Но я вроде бы так делал, поэтому пишу здесь.
Дело в том, что по какой-то причине я не нахожу функционала, который отправлял бы формы по их нэйму. Всё отправляется сразу, независимо от того, что формы разные, где логика?

Вопрос: как реализовать в экшене отправку форм по их именам в сабмитах?

P.S. уточняю, с помощью форм, я делаю проверку а не отправку данных в БД, то есть происходит передача post информации через Html::beginForm();.
Там установлено две формы, так нужно, и это не обсуждается, как и не обсуждается вопрос, зачем в автомобиле кондиционер. Так же и тут, для удобства, сначала срабатывает одна форма, которая кое-что отправляет, другая просто подтверждает, и всё это происходит на одной странице. Специфика функционала.
  • Вопрос задан
  • 1117 просмотров
Решения вопроса 1
Isolution666
@Isolution666 Автор вопроса
Full-Stack Developer
Решение очень простое:

...
$string = Yii::$app->request->post('send');
   if (isset($string)) {
         ...
   }
...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Посмотрите в документации, есть такой метод как formName(), если я не ошибаюсь.
Проверяйте, что возвращает этот метод, на основании этого пишите код.
Ответ написан
@Arik
но ведь форма то одна, а вот действие не одно? Что мешает в этом классе формы реализовать два метода, которые запускаются от button[name=btn][value=send] или button[name=btn][value=rezult]?
Ответ написан
bitver
@bitver
Это все уже предусмотрено, просто сделайте 3 формы и какую отправьте - такую и примите на сервере. Дело в том, что формы отправляются с [modelName] attribute
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы