【问题标题】:HTML and PHP - How to seperate 2 forms on a single page?HTML 和 PHP - 如何在单个页面上分隔 2 个表单?
【发布时间】:2021-08-18 08:17:19
【问题描述】:

我对 HTML 很陌生,目前我正在做一个任务,我必须为数据输入创建一个 HTML 表单,并使用 PHP 将输入写入文件。

写入文件有效,但我的代码得到以下评论:

您已经测试过是否发布了某些内容,但是如果您的页面上有 2 个表单,您的代码会发生什么情况?

我有点知道这是什么意思,但我不是很流利地知道如何解决这个问题或者这在我的代码中是从哪里来的。这是否与设置为 $ 的表单的操作有关_SERVER["PHP_SELF"],提交按钮的名字设置错了还是别的什么?

我尝试在网上寻找 HTML 表单以及如何在同一页面上显示 2 个表单。但我找不到任何真正有用的东西。如果有人可以提供帮助或向我指出一些详细解释这一点的信息(最好有示例),那就太好了!

这只是我的 HTML 表单,因为我使用 PHP 部分检查提交。其余代码我省略了,因为它不相关..

<html>
    <head>
        <title>Save and show data</title>
    </head>
    <body>
        <h2>Fill in the form below</h2>
        <form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>">
            <label for='name'>Naam:</label><br>
            <input type="text" id="name" name="name" placeholder = "John Doe" required><br>
            <label for='address'>Adres:</label><br>
            <input type="text" id="address" name="address" placeholder = "Sunset lane 10" required><br>
            <label for='zip'>Postcode:</label><br>
            <input type="text" id="zip" name="zip" placeholder = "15922" required><br>
            <label for='residence'>Woonplaats:</label><br>
            <input type="text" id="woonplaats" name="woonplaats" placeholder = "Somewhere" required><br>
            <label for='phone'>Telefoonnummer:</label><br>
            <input type="tel" id="phone" name="phone" placeholder = "0678945124" required><br>
            <label for='email'>E-mail:</label><br>
            <input type="email" id="email" name="email" placeholder = "johndoe@email.com" required><br><br>
            <input type="submit" name="submit_data" value="Save"><br>
        </form>
    <?php 
    if(isset($_POST["submit_data"]))
    {   
        // magic stuff happens here   
    }

【问题讨论】:

  • 您应该在绘制表单之前拥有 PHP 表单处理代码,而不是在它之后。您还应该通过查看 $_SERVER['REQUEST_METHOD'] 而不是检查表单变量来检查表单提交 - 然后您可以检查 $_POST 中的变量以确定您的表单已提交,或者通过具有不同的字段名称或只是通过在每个表单中粘贴一个不同名称的隐藏字段。或者您可以将表单处理代码放入每个表单的不同文件中。

标签: php html forms


【解决方案1】:

你的意思是这样的吗?每个提交按钮都有自己的验证。

<?php
    if (isset($_POST['submit_data'])) {
        //first form
    }
    
    if (isset($_POST['edit_data'])) {
        //second form
    }
?>


<form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>">
    <label for='name'>Naam:</label><br>
    <input type="text" id="name" name="name" placeholder = "John Doe" required><br>
    <input type="submit" name="submit_data" value="Save"><br>
</form>

<form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>">
    <label for='name'>Naam:</label><br>
    <input type="text" id="name" name="name" placeholder = "John Doe" required><br>
    <input type="submit" name="edit_data" value="Edit"><br>
</form>

【讨论】:

    猜你喜欢
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    相关资源
    最近更新 更多