如何使用一个 php 脚本处理多个表单

新手上路,请多包涵

我有多个表单,我有一个 php 脚本,我想用它来处理这些表单,但是当我点击任何表单的提交时……脚本由带有名为“submitForm”的提交按钮的表单数量处理在这种情况下,警报将显示 3 次而不是一次!我做错了什么?

注意。我希望这有意义吗?

html代码

<form action="" name="form1" method="post">
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>

<form action="" name="form2" method="post">
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>

<form action="" name="form3" method="post">
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>

脚本

<?php
     if (isset($_POST['submitForm'])) {

     echo('<script>alert("Form Submitted")</script>');

     }
?>

原文由 Jay Smoke 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 343
2 个回答

这将许多形式中的一种提交给 php。复制、粘贴、测试和学习。

 <?php
     if (isset($_POST['submitForm'])) {

    print_r($_POST);

     }

?>
<form action="" name="form1" method="post">
<input type="text" value="" name="A" />
<input type="text" value="" name="B" />
<input type="text" value="" name="C" />
<input type="text" value="" name="D" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>

<form action="" name="form2" method="post">
<input type="text" value="" name="A" />
<input type="text" value="" name="B" />
<input type="text" value="" name="C" />
<input type="text" value="" name="D" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>

<form action="" name="form3" method="post">
<input type="text" value="" name="A" />
<input type="text" value="" name="B" />
<input type="text" value="" name="C" />
<input type="text" value="" name="D" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>

第一种形式使用 a、b、c、d,第二种形式使用 e、f、g、h,第三种形式使用 i、j、k、l 并提交第二种形式会产生以下输出:

 Array
(
    [A] => e
    [B] => f
    [C] => g
    [D] => h
    [submitForm] => Submit Form
)

原文由 Herbert 发布,翻译遵循 CC BY-SA 3.0 许可协议

当我点击任何特定表格的提交时,它会提交所有表格。

这不是真的。

一旦您的表单具有正确的格式,您的 浏览器 将只提交当前的格式。

(这里与PHP无关)

但是,如果您是这个意思,整个页面将被重新加载。没关系 - 当您提交表单时,页面会重新加载。如果您需要其他行为,则必须解释您的意愿。

另请注意,您的文本字段都没有发送到服务器,因为它们没有名称。

我想我应该问的问题是,如何将特定表单传递给 php,而不是编写多个 php 脚本来处理每个表单!

嗯,看来你想问的是如何区分这些形式。

在每个中添加一个隐藏字段

<input type="hidden" name="step" value="1" />

然后在 PHP 中

if ($_POST['step'] == 1) {
  //first form
}
if ($_POST['step'] == 2) {
  //second
}

原文由 Your Common Sense 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题