@danyfir

Как отправить несколько форм одной кнопкой submit?

Есть такая форма:

<form type="POST" class="obrabotchik">
<input type="text" required  id="fio" name="fio">
<input type="text" required  id="vozrast" name="vozrast">
<input type="text" required  id="text" name="text">
<input type="submit" value="Отправить">  

<input type="text" required  id="fio" name="fio">
<input type="text" required  id="vozrast" name="vozrast">
<input type="text" required  id="text" name="text">
<input type="submit" value="Отправить">  

<input type="text" required  id="fio" name="fio">
<input type="text" required  id="vozrast" name="vozrast">
<input type="text" required  id="text" name="text">
<input type="submit" value="Отправить">  
</form>


submit работает на AJAX и отправляет каждую форму без проблем совершенно... Вот только 3 кнопки submit не красиво и не удобно для пользователя... Скажите, можно ли скрыть кнопки submit (допустим, через display:none) от пользователя и оставить лишь одну, которая при ее нажатии нажимала на все кнопки по очереди?

P.S.: Писать другой обработчик не вариант, т.к. система смежная с другой и ее работу нарушать нельзя. Нужно как-то обойти вышеописанную проблему.
  • Вопрос задан
  • 3896 просмотров
Пригласить эксперта
Ответы на вопрос 3
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
ну, начнем с того что форм у вас не 3, а 1.
Кнопки в форме 3, хотя достаточно одной, в конце формы(или в любом другом месте внутри тега формы).
Как у вас работает аякс - загадка, ибо кода вы не привели, а то что здесь нарисовано работать нормально не должно, так как:
1) id - уникальный идентификатор элемента, что как бэ намекает на то что повторяться для нескольких элементов он не должен.
2) форма отправленная в текущем виде на сервере будет просто передавать на сервер 3 последних значения из всего набора инпутов, тк сервер примет строку в которой будут повторяющиеся имена переменных - соответственно последние полученные данные затрут предыдущие. Это можно побороть яваскриптом, который будет реализовать анальный костыль, например считывая 3 инпута перед вызывающей кнопкой. Если вы знаете толк в извращениях - флаг в руки.
3) так как все 3 имени инпутов в группах совпадают - какой смысл их различать? как угадать из какого я отправляю данные?
4) если нужно 3 раза вызвать обработчик на сервере - 3 раза вызывайте аякс запрос, каждый раз передавая последующие 3 значения из инпутов, не забывайте, что аякс - асинхронная функция, запуск следующего запроса лучше всего вешать на onsuccess предыдущего запроса. Измените ид для каждого элемента на уникальный, или уберите вообще. Проще всего сделать все инпуты одной группы с одинаковым классом, по нему и выбирать группу, например $('.firstinputs')
Ответ написан
Комментировать
@JavaIlya
Learning Java
В чем прикол трех одинаковых форм? Назовите их по разному и отправте одним запросом, типо fio_3, fio_2, и впринципе лучше переменные с транслита называть английскими словами
Ответ написан
twobomb
@twobomb
Зачем у тебя в одной форме 3 кнопки sumbit? Ладно это не мое дело. Не знаю как можно сразу 3 отправить, попробуй вызвать у всех форм событие submit.
forma.dispatchEvent(new Event("submit"));
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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