如果我有多个带有单独提交表单的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"、
如果是,则不需要隐藏输入。
这对我有用…
-
每个表单都有一个唯一的"名称"。。。
form method="post"action="name="uniqueName"id="uniqueName"
-
每个表单都有这个隐藏字段。。。
input type="hidden"id="action1_1"name="action1"value="1"
具有唯一id扩展名(_1,_2,3…和唯一值(1,2,3,…),通用名称:action1
-
然后在php索引脚本中:
$action1=$_POST[操作1'];
if($action1=="1"){include("form_process1.php";//。。。做任何形式需要做的事。。。}else if($action1=="whateverelse"){include("form_process.php";//。。。做任何形式所做的。。。}