Несколько HTML-форм на одной странице

Если у меня есть несколько тегов HTML с отдельными формами отправки, как узнать, когда, когда был отправлен в файл PHP, который обрабатывает данные формы?

Самый простой способ – назвать свои кнопки отправки уникальными для формы. Вы также можете использовать это, если у вас несколько кнопок отправки для формы SINGLE (например, – отправить и сохранить, отправить и вернуть, отправить и выйти)

<input type="submit" name="action" value="Save"> <input type="submit" name="action" value="Return"> <input type="submit" name="action" value="Exit"> 

Массив $ _POST (или $ _GET / $ _ REQUEST) будет содержать ключ «действие» со значением введенной кнопки (независимо от того, нажал или нет).

Как правило, я избегаю пропускать скрытые текстовые поля и т. Д., Которые не нужны – просто чтобы код был более чистым.

Так. Для вашего приложения я бы дал следующие значения кнопки отправки:

 <form id="Form1"> <input type="submit" name="action" value="Form1"> </form> <form id="Form2"> <input type="submit" name="action" value="Form2"> </form> <form id="Form3"> <input type="submit" name="action" value="Form3"> </form> 

Вы можете установить такой ввод в каждой форме:

 <input type="hidden" name="form_id" value="identifier_of_form" /> 

Например:

 <form method="post" action=""> <input type="hidden" name="form_id" value="form_0" /> <!-- snip --> </form> <form method="post" action=""> <input type="hidden" name="form_id" value="form_1" /> <!-- snip --> </form> <form method="post" action=""> <input type="hidden" name="form_id" value="form_n" /> <!-- snip --> </form> 

Включая некоторые уникальные данные в каждом из них. Возможно со скрытым входом.

почему бы просто не задать имена форм как «action1», «действия2», «action3»,

Если это так, не требуется скрытый ввод.

Это работает для меня ….

  1. Каждая форма имеет уникальное «имя» …

    form method = "post" action = "" name = "uniqueName" id = "uniqueName"

  2. Каждая форма имеет это скрытое поле …

    input type = "hidden" id = "action1_1" name = "action1" value = "1"

с уникальным расширением id (_1, _2, 3 … и уникальным значением (1,2,3, ….) и общим именем: action1

  1. затем в скрипте индекса php:

    $ action1 = $ _POST ['action1'];

    if ($ action1 == "1") {include ("form_process1.php"; //…do то, что требуется для этой формы …} else if ($ action1 == "anyelse") {include ("form_process .php "; // … делать то, что делает эта форма …}