RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1088100
Accepted
JustLearn
JustLearn
Asked:2020-02-27 17:37:07 +0000 UTC2020-02-27 17:37:07 +0000 UTC 2020-02-27 17:37:07 +0000 UTC

如何确定单击了哪个提交按钮(仅使用 PHP 工具)?

  • 772
<html>
<body>
        <fieldset>
            <legend>Введите имя человека</legend>
            <form method="POST">
                <div class="inner">
                    <input type="submit" name="all" value="Получить данные о всех людях в БД">
                    <div class="input-area">
                        <label for="name">Имя:</label>
                        <input type="text" name="name" id="name">
                    </div>
                </div>
                <input type="hidden" name="check" value="1">
                <input type="submit" name="specific" value="Получить данные о люядх с данным именем">
            </form>
        </fieldset>
        <a href="in.php" style="text-align: center">Записать данные в БД</a>  
        <?php
            require_once "../reg file/login.php";
            $con = new mysqli($hn, $un, $pw, $db);
            if ($con->connect_error) die("Сбой подключения к БД.");

            mysqli_query($con, "SET NAMES 'utf8'"); 
            mysqli_query($con, "SET CHARACTER SET 'utf8'");
            mysqli_query($con, "SET SESSION collation_connection = 'utf8_general_ci'");

            if (isset($_POST["check"])) {
                if (empty($_POST["name"])) {
                    die("Вы не ввели имя");
                }

                if (!empty($_POST["all"])) {
                    $stmt = $con->prepare("SELECT * FROM people");
                    if (!$stmt->excecute()) die("Fatal Error");
                    $result = $stmt->get_result();
                    echo "<h1>Данные о всех людях в БД:</h1>";
                }
                if (!empty($_POST["specific"])) {
                    $name = htmlentities($_POST["name"]);
                    $stmt = $con->prepare("SELECT * FROM people WHERE name=?");
                    $stmt->bind_param("s", $name);                
                    $stmt->execute();
                    $result = $stmt->get_result();

                    if ($stmt->affected_rows == 0) die("Людей с именем " . $name . " нет в базе");

                    echo "<h1>Данные о людях с именем $name:</h1>";

                }
                foreach ($result as $row) {
                    echo "Возраст: " . $row["age"] . "<br>";
                    echo "Пол: " . ($row["gender"] == "male" ? "Мужской" : "Женский");
                }
                $stmt->close();

            }

            $con->close();

        ?>

    </body>
</html>

我想了解按下了哪个按钮。
我检查条件:

if (!empty($_POST["all"])) {
                    $stmt = $con->prepare("SELECT * FROM people");
                    if (!$stmt->excecute()) die("Fatal Error");
                    $result = $stmt->get_result();
                    echo "<h1>Данные о всех людях в БД:</h1>";
                }
                if (!empty($_POST["specific"])) {
                    $name = htmlentities($_POST["name"]);
                    $stmt = $con->prepare("SELECT * FROM people WHERE name=?");
                    $stmt->bind_param("s", $name);                
                    $stmt->execute();
                    $result = $stmt->get_result();

                    if ($stmt->affected_rows == 0) die("Людей с именем " . $name . " нет в базе");

                    echo "<h1>Данные о людях с именем $name:</h1>";

                }

但它不起作用:无论我按下哪个按钮,只有第二个有效。

我如何理解仅使用 PHP / MySQL 按下了哪个按钮?

PS我在SO上看到过类似的问题,但我没有找到我的问题的答案

php
  • 3 3 个回答
  • 10 Views

3 个回答

  • Voted
  1. Kirill
    2020-02-27T18:00:27Z2020-02-27T18:00:27Z
    <input type="submit" name="type[all]" value="Получить данные о всех людях в БД">
    // form data
    <input type="submit" name="type[specific]" value="Получить данные о люядх с данным именем">
    // some of your code
    switch (array_keys($_POST['type'])[0]) :
        case 'all':
            // first scenario
            break;
        case 'specific':
            // second scenario
            break;
    endswitch;
    
    • 0
  2. JustLearn
    2020-02-27T20:50:16Z2020-02-27T20:50:16Z

    另一种检查方法是:

        <form action="" method="POST">
                <input type="submit" name="type[all]" value="Получить данные о всех людях в БД">
                <input type="submit" name="type[specific]" value="Получить данные о люядх с данным именем">
                <input type="hidden" name="check" value="1">
            </form>
            <?php
                if (isset($_POST["type"]["all"])) {
                    //Одни действия
                }
                else if (isset($_POST["type"]["specific"])) {
                    //Другие действия
                }
    
    • 0
  3. Best Answer
    JustLearn
    2020-03-12T03:28:01Z2020-03-12T03:28:01Z

    事实上,一切都变得容易多了!
    我只是在第一个 if 块中编写了执行函数时犯了一个错误——我不小心写了执行。并显示“您没有输入名称”,因为我在进入 if (!empty($_POST["specific"])) 分支之前检查了是否输入了名称。因此,创建一个数组类型以及其中的所有元素和特定元素根本没有意义。你可以像我原来做的那样做

    • 0

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5