【问题标题】:Javascript confirm() still executes action when cancel is clicked. :(单击取消时,Javascript confirm() 仍会执行操作。 :(
【发布时间】:2016-01-10 23:01:40
【问题描述】:
<script type="text/javascript">
confirm("Delete user?.");
window.location.href = "users.php";
</script>
$qqq = mysql_query("DELETE from users WHERE panelistname='$theuser'") or die(mysql_error())

考虑到上面的代码,(在一个 php 文件中,所以不用担心您可能会注意到某些语法错误)这里的问题是,当在确认()对话框上单击取消时,将显示。删除操作仍然执行。这个问题可能被认为是双重问题,是的,我发现了一些与这个问题相关的问题,但我自己无法解决这个问题。 我发现的代码是这样的:

"if (confirm('Are you...?')) commentDelete(1); return false"

我找不到解决这个问题的方法,我不知道我应该在哪个部分插入这种格式的SQL命令(删除)。请有人告诉我如何正确地做到这一点。 :) 谢谢!

【问题讨论】:

  • 试试if( !confirm('message') ) return;

标签: javascript php confirm


【解决方案1】:

编辑:我刚刚看到 Nick Zuber 在我发布我的答案前大约 1 分钟发布了一个类似的答案(实际上,在我写它的时候:P)

我不清楚您要做什么。 你想向用户显示一个确认窗口,如果他们点击是,删除数据库中的一些条目,如果他们点击否,将他们重定向到页面'users.php'?

如果这是你想做的,那么你不能这样。您不能在 PHP 中使用 JS 条件。 PHP 代码在服务器端(在服务器中)执行,而 JS 代码在客户端(在浏览器中)执行。你需要做这样的事情:

警告:不要使用此代码,它不安全,不应该在实际应用中使用,它只是为了向您展示整个事情的工作原理

(在 USERS.PHP 中)

if(isset($_GET['delete_dat_user']))
{
    $qqq = mysql_query("DELETE from users WHERE panelistname='" . $_GET['delete_dat_user'] . "'") or die(mysql_error());
}

(在网页中)

if(confirm('u serious u want to delete the user'))
{
    window.location = 'users.php?delete_dat_user=theUserName';
}
else
{
    nope
}

【讨论】:

  • 既然 Nick Zuber 在你之前发布了他的答案,我想我必须先试试他的想法 :) 但无论如何你的回答给了我一个小费,所以我想你仍然值得我感谢: )感谢您的回答(y)
  • @PatrickJohnCalumno 无论您发现哪种方法最适合您,我们都在这里为您提供帮助 :)
【解决方案2】:

当您的页面加载时,您页面上的 PHP 将自动执行,而不管您的 JavaScript 是什么。相反,尝试提示用户是否要删除该帐户并如果他们单击是将他们重定向到包含您的 PHP 查询的页面。

此外,confirm 函数根据用户单击的选项返回一个布尔值。尝试将其放入 if 声明中:

if(confirm("Delete user?.")){
    window.location.href = "delete_user_page.php";
}else{
    // cancel was clicked
}

【讨论】:

    猜你喜欢
    • 2021-11-20
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多