PHP - if(isset($ _ POST ['button1'')){... if(isset($ _ POST ['button2']))..不工作?

时间:2018-01-17 16:32:56

标签: php html forms isset

我有这段代码:

   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!";

    }
}

当我按“删除”时,页面重新加载并显示消息“已删除!”仍然隐藏着。

这是一个时间表。这个想法是,如果有人按下“保存”按钮但已经保存了一个小时,则表示“您已经保存了一个小时,是否要取消它?”。单击“删除”时,将从数据库中删除小时。

如果按下“保存”按钮但该人未保存一小时,则不会显示删除按钮。

2 个答案:

答案 0 :(得分:1)

这一行:

echo "Deleted!";

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

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

但是您展示的表单不包含名为save的元素。第一个条件是false,因此if块中的代码永远不会运行。 (在之前的请求中可能是true,但在您使用此表单的请求中却没有。{/ p>

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

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

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

答案 1 :(得分:0)

另一种方法是这样的。
这利用了您可以在任何地方打开和关闭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>