1 форма и 2 submit. Как реализовать?

1 форма и 2 submit. Как реализовать?

Очень долго выдумывал какое дать название этой статье и ничего лучшего не смог придумать. Это единственное название, которое хоть как-то отражает суть изложенного. Я, если честно, не знаю как правильно это называется, поэтому назвал статью также, как пытался найти хоть какую-то информацию в поисковике по этой теме.

На одном из сайтов мне потребовалось в одной форме использовать две кнопки submit, которые пересылали бы заполненные данные разным PHP-“обработчикам”, в зависимости от нажатия кнопки. Google ничего вменяемого мне не ответил, видимо я просто не так его как-то об этом просил, поэтому пришлось придумывать самому.

Вот и выложил на Ваш суд.

Суть проблемы

После самостоятельной реализации, я все таки нашел несколько решения, которые основывались на использовании обычных кнопок, к которым прикручивался JS.

Я реализовал задуманное практически также, но использовал стандартный тип submit. Все вроде работает и на мой взгляд мое решение более логически верное.

Это решение будет одинаково хорошо работать как на бесплатном хостинге, так и в том случае, если Вы выберите профессиональный хостинг. Данный способ реализуется полностью на стороне клиента и не должен тормозить работу сервера.

Для того, чтобы было более проще понять что я хочу и как это работает вот реально рабочий пример, в виде формы, у который 2 submit`a, пересылающие данные на разные страницы:

Как сделать у 1 формы 2 submit`а?

Все оказывается просто. За все эти действия отвечает небольшой кусочек кода, который приведен ниже:

<script>

function OnSubmitForm() {
if(document.pressed == 'SUBMIT номер 1') {
document.myform.action ="/";
} else if(document.pressed == 'SUBMIT номер 2') {
document.myform.action ="/html";
}
return true;
}

</script>


<form name="myform" onsubmit="return OnSubmitForm();" method="post" name="text">

<textarea style="width:200px;height:50px;"></textarea>

<input type="submit" name="Operation" onClick="document.pressed=this.value" value="SUBMIT номер 1" />
<input type="submit" name="Operation" onClick="document.pressed=this.value" value="SUBMIT номер 2" />

</form>

В примере эти 2 кнопки отсылают данные: на главную страницу и в один из разделов блога. Это всего-лишь пример и поэтому Вы сами можете руководить этим процессом как Вам это заблагорассудится. Вместо моих ссылок можно указать php-файлы, который будут работать с этими данными.

Я не утверждаю, что это решение какое-то уникальное и, возможно, кто-то также реализовал эту потребность. Возможно даже есть способы сделать это лучше, но мне, как человеку который самостоятельно до этого дошел, думается, что этот способ лучший. :)

Комментарии:

  1. chooch опубликовал комментарий 3 Февраль 2012, 01:59 #

    агромнае чилавечискае пасиба )

    | Ответить
  2. Godspeed опубликовал комментарий 21 Февраль 2013, 00:48 #

    Спасибо)

    | Ответить
  3. Василий опубликовал комментарий 8 Ноябрь 2013, 15:07 #

    Здравствуйте! У меня похожая ситуация, только различие вот в чем – мне нужно чтобы была одна форма, одна кнопка, но два action. Знаете ли Вы случайно как это сделать?
    Либо так – две обычные формы, одна показывается, вторая скрыта, при нажатии на кнопку первой формы нажимается кнопка второй формы.
    Заранее спасибо.

    | Ответить
    • itshaman опубликовал комментарий 11 Ноябрь 2013, 05:31 #

      Не совсем понятно, что Вы хотите. Можете описать на примере как это должно работать?

      | Ответить
Имя
e-mail
Сайт
Текст комментария: