一个页面上有多个HTML表单

9
如果我有多个带有单独提交表单的HTML标记,那么在处理表单数据的PHP文件中,如何知道哪一个被提交了?
5个回答

7
您可以在每个表单中设置这样的输入框:
<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>

7

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

 <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>

5
通过在每个输入框中包含一些独特的数据,可能使用隐藏输入框实现。

1
为什么不直接将表单名称设置为"action1"、"action2"、"action3",这样就不需要隐藏输入了。

0

这对我有用...

  1. 每个表格都有一个唯一的“名称”...

    表单方法="发布"操作=""名称="uniqueName" id= "uniqueName"

  2. 每个表格都有这个隐藏字段...

    输入类型="隐藏" ID="action1_1" 名称="action1" 值="1"

带有唯一ID扩展(_1,_2,3 ……)和唯一值(1,2,3,....)和共同名称:action1

  1. 然后在php索引脚本中:

    $ action1 = $ _POST ['action1'];

    如果($ action1 == "1"){include("form_process1.php"; //...做表格需要完成的任务... } 否则 if($ action1 == "whateverelse"){include("form_process.php"; // ...做表格需要完成的任务... }


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接