Javascript 单击取消时,confirm() 仍会执行操作。 :(

Javascript confirm() still executes action when cancel is clicked. :(

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

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

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

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

此外,confirm 函数 returns 一个布尔值,具体取决于用户单击的选项。尝试将其放在 if 语句中:

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

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

我不太明白你想做什么。 您想要向用户显示确认 window,如果他们单击“是”,则删除数据库中的一些条目,如果他们单击“否”,则将他们重定向到页面 'users.php' ?

如果这是你想做的,那你就不能这样做。您不能将 JS 条件与 PHP 一起使用。 PHP 代码执行 server-side (在服务器中),而 JS 代码执行 client-side (在浏览器中)。你需要的是做这样的事情:

警告:请勿使用此代码,它不安全且永远不应在真实应用中使用,它只是向您展示整个过程的工作原理

(输入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
}