Javascript也正在加载脚本的其余部分
我正在使用以确认删除内容。 我已经使用js确认用户删除内容。。但如果用户取消确认对话框,它应该重定向。。但是,页面正在加载整个脚本,然后重定向 脚本在这里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"); 当我在确认对话框中单击取消时,也会显示此不需要的警报 编辑。。 实际上整个代码是这样的。。
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方面做得不多,但我能勉强应付,我认为这不是一个很好的教程网站。。。