如果我有多个带有单独提交表单的HTML标记,那么在处理表单数据的PHP文件中,如何知道哪一个被提交了?
<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>
最简单的方法是将您的提交按钮命名为与表单唯一。如果您有多个提交按钮用于单个表单(例如-提交和保存,提交和返回,提交和退出),您也可以使用此方法
<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>
这对我有用...
每个表格都有一个唯一的“名称”...
表单方法="发布"操作=""名称="uniqueName" id= "uniqueName"
每个表格都有这个隐藏字段...
输入类型="隐藏" ID="action1_1" 名称="action1" 值="1"
带有唯一ID扩展(_1,_2,3 ……)和唯一值(1,2,3,....)和共同名称:action1
然后在php索引脚本中:
$ action1 = $ _POST ['action1'];
如果($ action1 == "1"){include("form_process1.php"; //...做表格需要完成的任务... } 否则 if($ action1 == "whateverelse"){include("form_process.php"; // ...做表格需要完成的任务... }