取消按钮在函数 alert_remove() 中不起作用

Cancel button doesn't work in function alert_remove()

我想在删除记录时显示一条是否消息, 我试过这段代码,它工作正常,但 No 按钮 也可以用作 Yes 按钮,这意味着即使我单击 No 它删除该记录

<script language="javascript">
   function alert_remove() {
      confirm("Are u sure u want to delete ?");
   }
</script>
<a rel='tooltip' title='Delete' href='actions.php?delete=$row->id' onClick='javascript:alert_remove();'>

actions.php 文件:

        if (isset($_GET['delete'])){
            $id = $_GET['delete'];
            $query = mysql_query("DELETE FROM users WHERE id=$id");
            header("Location: liste.php");
        }

你需要return false

为了防止导航,onclick 函数必须 return false

onClick='javascript:alert_remove();'

它没有 return 语句,所以它 return 什么都没有。

所以:

  1. 删除无意义的label
  2. 添加 return 语句

这样的:

onclick='return alert_remove();'

现在您正在 returning alert_remove 的 return 值,但是该函数也没有 return 语句,因此您需要添加一个:

   function alert_remove() {
      return confirm("Are u sure u want to delete ?");
   }

旁白

过时HTML

<script language="javascript">

这是HTML 3.2。 HTML当前版本为HTML 5.写入当前标准:

<script>

…和use a validator.

无效HTML

rel='tooltip'

这不是 rel 的注册值。

如果要将任意数据添加到元素以使用 JavaScript 进行访问,请使用 data-* attribute.

不应该使用 GET 来删除东西

href='actions.php?delete=$row->id'

删除东西不是安全的操作。 HTTP 规范为安全操作保留 GET 请求。

曾发生过一个事件,浏览器插件旨在通过预取后续页面来加快浏览速度,删除了论坛上的大量帖子,因为管理员用户安装了它,并且该表单使用链接来删除帖子。

如果要删除内容,请使用 <form> 并发出 POST 请求。

过时且不安全的数据库访问

mysql_query("DELETE FROM users WHERE id=$id");

您正在使用来自 PHP 的 an obsolete database API that has been removed。这意味着您使用的 PHP 版本自 2018 年以来一直没有安全修复。尽快升级 PHP。

您应该 select 一个 modern replacement 用于您的数据库 API。

此外,您 容易受到 SQL injection attacks that a modern API would make it easier to defend 的影响。

内部事件属性有问题

他们有很多陷阱,自 90 年代以来一直没有被认为是最佳实践。我们现在 addEventListener