有两个自我提交的表格


Having Two Self Submitting Forms

我可以在一页上有两个自我提交的表格吗?如果是,我如何为每个表单分配不同的代码块?

具有两个不同值的隐藏输入。

<form action="" ...>
<input type="hidden" name="form_no" value="0">
...
</form>
<form action="" ...>
<input type="hidden" name="form_no" value="1">
...
</form>

在服务器端,根据$_REQUEST['form_no']而有所不同


或者您也可以将其添加为提交元素中的名称参数。

<input type="submit" name="form0">

使用isset($_REQUEST['form0'])进行区分。


另一种方法是附加一个GET参数来区分

<form action="<?php echo $_SERVER['PHP_SELF'];?>?form_no=0" ...>
...
</form>
<form action="<?php echo $_SERVER['PHP_SELF'];?>?form_no=1" ...>
...
</form>

使用$_GET['form_no']进行区分。

命名你的第一个表单form_one,第二个表单form_two。

<?php
if (isset($_POST['form_one'])) {
    // First form was submitted
}
if (isset($_POST['form_two'])) {
    // Second form was submitted
}
?>

可以通过为它们提供不同的名称并保持其目标_blank将两种形式放置在代码中

<form action="action.asp" method="get">
  First name: <input type="text" name="fname" /><br />
  Last name: <input type="text" name="lname" /><br />
 <input type="submit" name="submit1" value="Submit" />
</form>
<form action="action.asp" method="get">
  First name: <input type="text" name="fname" /><br />
  Last name: <input type="text" name="lname" /><br />
 <input type="submit" name="submit2" value="Submit" />
</form>
<?php
if(isset($_GET['submit1'])){
// first form was submitted
}
if(isset($_GET['submit2'])){
// second form was submitted
}
?>

每个表单都有此示例中指定的不同脚本,但请记住,您可以简单地对两个操作使用相同的 php 文件,为每个表单指定不同的代码块(即上面的 php 部分)。

有人可能有更好的答案,但这种方法在过去对我很有帮助。