我有这段代码:
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!";
}
}
当我按“删除”时,页面重新加载并显示消息“已删除!”仍然隐藏着。
这是一个时间表。这个想法是,如果有人按下“保存”按钮但已经保存了一个小时,则表示“您已经保存了一个小时,是否要取消它?”。单击“删除”时,将从数据库中删除小时。
如果按下“保存”按钮但该人未保存一小时,则不会显示删除按钮。
答案 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>