所以我一直在用我用PHP和mysql构建的内容管理系统构建一个小网站。我想要实现的是用户需要能够编辑和删除他们发布的公告帖子,所以我一直在使用$ _GET来获取要编辑/删除的帖子的ID,并将其放入一个表格中持有代码来做到这一点。
现在,这是我一直在使用的代码
if(isset($_GET['edit'])) {
header('Location: announcement-edit.php?AnnouncementID='.$_GET['AnnouncementID']);
}
页面后面的表单执行此操作如下
<form action="announcements.php" method="get">
<input type="hidden" name="AnnouncementID" value="<?php echo $row['AnnouncementID'];?>" />
<input name="edit" value="Modify" type="submit">
<input name="delete" value="Delete" type="submit" >
</form>
这是令我困惑的地方,这段代码非常完美,上周它突然停了下来,2天前它再次开始工作,现在再次破坏。单击该按钮时,URL返回为;
url / folder / announcements.php?AnnouncementID = 7&amp; edit = Modify
当它应该返回时;
url / folder / announcement-edit.php?AnnouncementID = 7
如果我在网址栏中手动输入以上内容,它可以正常工作,我可以更新数据库中的行。
我完全难以理解为什么它如此气馁,我错过了什么吗?我想以过时的方式做这件事吗?
它不像我刚刚在youtube上跟随一个随机的人如何做到这一点我实际上是在大学(仅在最后一学年)以这种方式展示,我们被告知这是“良好的做法”。看起来非常奇怪,它在一分钟内完美运行然后拒绝下一步工作。
任何想法或建议都将不胜感激。
答案 0 :(得分:1)
您的表单中有两个提交按钮,当您按 Enter 键时,只会触发一次提交事件。因此,当按下删除按钮时,您的GET
参数将只有delete
条目,而不是edit
条目。
解决这个问题的一种方法是,为两者赋予相同的名称并给出不同的值,因为已经存在不同的值。
<form action="announcements.php" method="get">
<input type="hidden" name="AnnouncementID" value="<?php echo $row['AnnouncementID'];?>" />
<input name="action" value="Modify" type="submit" />
<input name="action" value="Delete" type="submit" />
</form>
答案 1 :(得分:0)
你不需要使用表格。您只需使用网址并使用 标记即可 尝试通过get参数传递参数,如下所示:
<a href="announcements.php?AnnouncementID=<?php echo $row['AnnouncementID'];?>&edit=1">Edit</a>
<a href="announcements.php?AnnouncementID=<?php echo $row['AnnouncementID'];?>&delete=1">Delete</a>