Отправка 2 форм 1 запросом

80
18 сентября 2021, 09:40

В общем - у меня на странице есть 2 формы. Они в разных местах страницы и даже в разных файлах темы.

Мне нужно при сабмите одной формы, чтобы данные из второй тоже уходили на тот же обработчик и при этом - в одном POST запросе.

Не нагуглил как такое сделать.

Answer 1

Тема уже где-то была:

Вариант первый:

Можно попробовать создать третью скрытую форму, которая будет сериализовать поля из обоих.

<form name="form1" method="post">
.........
</form>
<form name="form2" method="post">
.........
</form>

На jQuery:

var str1 = $("form1").serialize();
var str2 = $("form2").serialize();
$.post(url, str1 + "&" + str2);

Вариант второй:

Через ajax (у каждой формы свой id):

<script type="text/javascript">
    $(document).ready(function () {
        $('form').submit(function () {
            var formID = $(this).attr('id'); // Получение ID формы
            var formNm = $('#' + formID);
            $.ajax({
                type: 'POST',
                url: 'mail.php', // Обработчик формы отправки
                data: formNm.serialize(),
                success: function (data) {
                    // Вывод текста результата отправки в текущей форме
                    $(formNm).html(data);
                }
            });
            return false;
        });
    });
</script> 

*Если запустить $('form').serialize() на странице с несколькими формами, она будет правильно сериализовать все формы в одну строку, ну, а для включения только определенных форм, можно указать конкретно $('#form1, #form2').serialize().

READ ALSO
Передать id в форму

Передать id в форму

Есть таблица с кнопками на всплывающую форму, id берет с БД

94
CanBus. CanMessage. Формат сообщения

CanBus. CanMessage. Формат сообщения

Помогите, пожалуйста, начинающему разработчикуХочу прочитать некоторую диагностическую информацию с ЭБУ автомобиля

89