Javascript也正在加载脚本的其余部分

Javascript也正在加载脚本的其余部分,javascript,redirect,Javascript,Redirect,我正在使用以确认删除内容。 我已经使用js确认用户删除内容。。但如果用户取消确认对话框,它应该重定向。。但是,页面正在加载整个脚本,然后重定向 脚本在这里 if (confirm("Are you sure you want to delete??")) alert("deletion successful"); else history.go(-1); alert("unwanted alert"); 当我在确认对话框中单击取消时,也会显示此不需要的警报 编辑。。 实际上整个代码是这样的。。

我正在使用以确认删除内容。 我已经使用js确认用户删除内容。。但如果用户取消确认对话框,它应该重定向。。但是,页面正在加载整个脚本,然后重定向

脚本在这里

if (confirm("Are you sure you want to delete??"))
alert("deletion successful");
else
history.go(-1);
alert("unwanted alert");
当我在确认对话框中单击取消时,也会显示此不需要的警报

编辑。。 实际上整个代码是这样的。。也许这会让我清楚地知道我的问题是什么

    <html>
<script>
    if (!confirm("Are you sure you want to delete??"))
        history.go(-1);
</script>

<?php
require_once "config.php";

$query= 'DELETE FROM `sess` WHERE `sid` ='.$_GET['bid'];

if ($conn->query($query) === TRUE) {?>

<script>
    alert("deletion successful");
    window.location.replace("../index.php");
</script>

<?php
} else {?>

<script>
    alert("unable to delete!");
    window.location.replace("../index.php");
</script>

<?php }?>

</html>

如果(!确认(“您确定要删除吗?”))
历史。go(-1);
警报(“删除成功”);
window.location.replace(“../index.php”);
警报(“无法删除!”);
window.location.replace(“../index.php”);

您的编辑揭示了问题所在

您的PHP代码在服务器上运行并在页面交付到浏览器之前运行。因此,即使您输出JavaScript代码询问用户是否要确认,但在页面发送到浏览器之前,这不会起任何作用。服务器端代码继续运行,执行SQL语句

因此,基本上,将其分为服务器和客户端两部分,下面是代码的运行方式:

require_once "config.php";

$query= 'DELETE FROM `sess` WHERE `sid` ='.$_GET['bid'];

if ($conn->query($query) === TRUE) {
    /*...write some output to the response...*/
} else {
    /*...write some other output to the response...*/
}
首先,此服务器端代码运行:

require_once "config.php";

$query= 'DELETE FROM `sess` WHERE `sid` ='.$_GET['bid'];

if ($conn->query($query) === TRUE) {
    /*...write some output to the response...*/
} else {
    /*...write some other output to the response...*/
}
然后,当响应发送到客户端时,看起来是这样的(假设查询调用返回TRUE):


如果(!确认(“您确定要删除吗?”))
历史。go(-1);
警报(“删除成功”);
window.location.replace(“../index.php”);
此时,删除已发生。浏览器收到此响应,并显示
确认
警报
,并对位置进行更新,但同样,这对服务器上先前发生的情况没有影响

您需要在调用此页面的任何页面上更早地进行确认,因此它发生在服务器端代码运行之前



我建议您从当前任务中退一步,学习一些好的PHP和web教程,这样您就可以更好地了解事情发生的时间和地点。

您所说的
页面加载整个脚本是什么意思?还有不需要的提示,它应该是
else
块的一部分吗?你能修复缩进吗?是的,但是不需要的提示,我是说一些php代码。。。但是在使用return之后,它也没有显示确认对话框…@piyushkantm:PHP代码在服务器上运行,甚至在页面进入浏览器之前。添加
return
后,您没有显示
confirm
:恕我直言,您添加它肯定是错误的。我在上面的代码中添加了return,在{}中也添加了return。可能是我犯了一个愚蠢的错误,但是找不到that@piyushkantm:您的编辑揭示了问题所在,我已更新了答案以进行解释。@Piyushkant M:遗憾的是,没有,我在PHP方面做得不多,但我能勉强应付,我认为这不是一个很好的教程网站。。。