【问题标题】:PHP - if(isset($_POST['button1'')){... if(isset($_POST['button2'])).. not working?PHP - if(isset($_POST['button1'')){... if(isset($_POST['button2'])).. 不工作?
【发布时间】:2018-01-17 16:32:55
【问题描述】:

我有这个代码:

   echo'<form method="POST" action="">';

    echo'Code:<input type="text" name="name">';
    echo'<input type="submit" name="save" value="Save">';

    echo'</form>';

if(isset($_POST['save'])){

    //something
    echo'<form method="POST" action="">';

    echo'Code:<input type="text" name="name">';
    echo'<input type="submit" name="delh" value="Delete">';

    echo'</form>';

    if(isset($_POST['delh'])){
        // Cant show this! :(
        echo "Deleted!";

    }
}

当我按下“DELETE”时,页面会重新加载并显示“已删除!”消息保持隐藏状态。


这是一个时间表。这个想法是如果有人按下保存按钮但已经保存了一个小时,它会说“你已经保存了一个小时,你想取消它吗?”。当它点击“删除”时,小时从数据库中被删除。

如果按下了保存按钮,但该人还没有保存一个小时,则不显示删除按钮。

【问题讨论】:

    标签: php html forms isset


    【解决方案1】:

    这一行:

    echo "Deleted!";
    

    只有当两个这两个条件都为真时才能达到:

    if(isset($_POST['save'])){
        //...
        if(isset($_POST['delh'])){
    

    但是您显示的表单不包含名为save 的元素。第一个条件是false,因此if 块内的代码永远不会运行。 (在上一个请求中可能是true,但在您使用此表单发出的请求中却不是。)

    您可能打算将这些条件分开?:

    if(isset($_POST['save'])){
        //...
    }
    
    if(isset($_POST['delh'])){
        //...
    }
    

    【讨论】:

    • 现在有保存但没有删除:-(
    • 您好,谢谢您的回答!我在“isset($_POST['save'])”之前有另一个 html 表单。 (有两种形式!)这是一个时间表。这个想法是如果有人按下保存按钮但已经保存了一个小时,它会说“你已经保存了一个小时,你想取消它吗?”。当它单击“删除”时,该小时将从数据库中删除。如果按下了保存按钮,但该人还没有保存一个小时,则不显示删除按钮。
    • @NikolayBelobradov:嗯,此时您主要描述的是//something 中的内容。但这不是你面临的问题。您编写的逻辑需要 both savedelh 存在,以便访问“删除”代码。但是删除的表格没有save 值。您要么需要向该表单添加 save 元素,要么将服务器端逻辑更改为仅查找 delh 表单值。这个答案尝试后者。
    【解决方案2】:

    另一种方法是这样的。
    这利用了您可以在任何地方打开和关闭 PHP 标记的事实。

    <?php if (isset($_POST["delh"])) { ?>
        <p>Deleted!</p>
    <?php } ?>
    <form method="POST" action="">
        Code:<input type="text" name="name">
        <?php if (isset($_POST["save"])) { ?>
            <input type="submit" name="delh" value="Delete" />
        <?php } elseif (isset($_POST["delh"])) { ?>
            <input type="submit" name="save" value="Save" />
        <?php } ?>
    </form>
    

    【讨论】:

      猜你喜欢
      • 2014-07-04
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      相关资源
      最近更新 更多