Отправка нескольких форм на одну страницу действий с помощью одной кнопки в php - PullRequest
0 голосов
/ 19 сентября 2019

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

До сих пор я пытался использовать идентификатор формы для всех своих форм, и этовсе еще неудачно.Первая форма - единственная, которая проходит через, и я думаю, это потому, что действие над ее тегом FORM выполняется до того, как остальные формы также могут быть выполнены.Ниже я привел пример кода, иллюстрирующий то, что я пытаюсь сделать:

<form method="post" action="example.php" id="formID">
//Some code here
</form>

<form method="post" action="example.php" id="formID">
//Some code here
</form>

<form method="post" action="example.php" id="formID">
//Some code here
</form>

<button type="submit" name="sub1" form="formID">Submit</button>

Так как я могу отправить все три формы на одну и ту же страницу, используя PHP?

Спасибо за васпомощь.

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

Технически вы отправляете все формы, но все они имеют одинаковое действие и ID.Проверьте этот вопрос: страница нескольких форм и одной обработки

Во-первых, атрибут HTML ID должен быть уникальным.Как только каждая форма имеет свой собственный идентификатор, вы можете правильно проанализировать данные в переменной $ _GET из действия вашего файла example.php.

0 голосов
/ 19 сентября 2019

Вы можете сделать это только с помощью javascript и отправить 3 запроса в фоновом режиме.

Например.Пометьте свои формы указанным классом, например, multiple_form.

Затем измените свой код на что-то вроде:

<form method="post" class="multiple_form" action="example.php" id="formID">
//Some code here
</form>

<form method="post" class="multiple_form" action="example.php" id="formID">
//Some code here
</form>

<form method="post" class="multiple_form" action="example.php" id="formID">
//Some code here
</form>

<button class="multiple_form_sender" name="sub1">Submit</button>

Затем добавьте JavaScript к своему коду

var forms = document.getElementsByClassName("multiple_form");

var sender = function(e) {
  const form = e.target;

  // Post data using Fetch
  fetch(form.action, {
    method: form.method,
    body: new FormData(form)
  })

  // Prevent the default form submit
  e.preventDefault();
};

for (var i = 0; i < forms.length; i++) {
    forms[i].addEventListener('submit', sender);
}

document.getElementById("multiple_form_sender").addEventListener('click', function(){
    for (var i = 0; i < forms.length; i++) {
        forms[i].submit();
    }
});

Но если вы не хотите отправлять формы, используя JavaScript.Вы должны рассмотреть одну форму с параметрами массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...