Возможно ли иметь две формы с двумя кнопками отправки, чтобы при нажатии кнопки она сохраняет поля ввода в обеих формах?
Я хочу решить это в PHP / MySQL.
Я пробовал свой собственный путь:
if ((isset($_POST["form-1"])) && (isset($_POST["form-2"])) { //SQL Insertion }
Нет, вы можете отправлять только одну форму за раз.
Если вам нужно использовать две формы, единственный способ сделать это – клонировать поля второй формы в первую, используя jQuery. Однако, если JS выключен, работать не будет.
См. Копирование из формы в форму в jQuery
Зачем вам две формы?
Если у вас возникла такая проблема, дизайн имеет недостатки.
Вы можете подать только одну форму за раз.
Измените дизайн, чтобы использовать только одну форму; делать обходные пути для представления двух в любом случае – это ужасная практика, которую лучше избегать.
Одним из способов достижения аналогичного результата было бы объединение двух форм в один и два кнопки отправки с разными значениями и одно и то же name="submit"
.
toFoo.html:
<form action="doFoo.php"> User <input type="text" name="username" /> Pass <input type="password name="password" /> <!-- Submit one --> <input type="submit" name="submit" value="Create user" /> <!-- some more of your fields or whatever --> <input type="text" name="blah" value="bleh" /> <!-- Submit two --> <input type="submit" name="submit" value="Login user" /> </form>
doFoo.php:
<?php if( $_POST["submit"] == "Login user" ) { //do login foo } if( $_POST["submit"] == "Create user" ) { //do signup foo } ?>
Вы можете отправлять обе формы одновременно с помощью Ajax, но ваш скрипт php будет получать только одну форму за раз. Лучше просто преобразовать 2 формы в одну большую форму, если вам нужны все входы, идущие на один скрипт
Кнопка submit представляет только поля формы, в которой она живет. Если вам нужно содержимое обеих форм, вам нужно будет скопировать поля из другой формы в какое-то скрытое поле в форме, на которую была нажата кнопка отправки. Это довольно легко сделать в JavaScript.
Насколько я знаю, только одна форма может быть представлена одновременно. Вы можете попробовать обернуть их в одну форму.