一页上有多个HTML表单


Multiple HTML Forms on One Page

如果我有多个带有单独提交表单的HTML标记,我如何知道哪个标记何时发布在处理表单数据的PHP文件中?

最简单的方法是将提交按钮命名为表单唯一的按钮。如果单个表单有多个提交按钮,也可以使用此方法(例如-提交并保存、提交并返回、提交并退出)

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

$_POST数组(或$_GET/$_REQUEST)将包含具有已制定按钮值的键"action"(无论是否单击)。

通常,我会避免传递不必要的隐藏文本字段等,只是为了让代码更干净。

所以。对于您的应用程序,我会给您的提交按钮值如下:

<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"、"actions2"、"action 3"、

如果是,则不需要隐藏输入。

这对我有用…

  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[操作1'];

    if($action1=="1"){include("form_process1.php";//。。。做任何形式需要做的事。。。}else if($action1=="whateverelse"){include("form_process.php";//。。。做任何形式所做的。。。}