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

时间:2016-01-10 23:01:40

标签: javascript php confirm

<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命令(删除)。请有人告诉我如何做到这一点。 :)谢谢!

2 个答案:

答案 0 :(得分:1)

当您加载页面时,无论您使用哪种JavaScript,页面上的PHP都会自动执行。相反,尝试提示用户是否要删除帐户,如果他们单击是重定向到具有您的PHP查询的页面。

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

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

答案 1 :(得分:1)

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

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

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

警告:不要使用此代码,它不安全,不应该在真正的应用程序中使用,它只是向您展示整个工作如何工作

(IN 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
}