JavaScript警报工作不正常


JavaScript Alert not working properly

我在php页面中使用javascript显示警报。它没有显示警报框。Kinldy指导我如何让它正常工作

if($sql && $sql2 && $sql3) 
{
    echo "<script> alert('Deleted successfully!');</script>";
        $myURL = 'students_list.php';
        header('Location: '.$myURL);
        exit;
    else
{    
echo "<script> alert('Temporary problem, try again!');</script>";
}
?>

它正在从数据库中删除数据,但不显示警报。告诉我如何使它正常工作。

执行此

<script> alert('Deleted successfully!');window.location='students_list.php'</script>

像这样,当警报关闭时,您可以重定向。

您首先尝试显示警报:

echo "<script> alert('Deleted successfully!');</script>";

然后发布HTTP重定向:

$myURL = 'students_list.php';
header('Location: '.$myURL);

由于HTTP重定向的工作方式,这些功能是不兼容的:

  • 如果您启用了输出缓冲,将生成重定向响应(HTTP 302),并将您的警报脚本作为主体。。。然而,重定向的主体被支持它们的浏览器忽略(即,除了没有-L选项的curl之外的所有重定向)。

  • 如果您没有启用输出缓冲,脚本将输出警报的JS代码,但无法再输出重定向,因为此时HTTP标头已经发出。根据设置,客户端浏览器中将显示警告。

一个可能的解决方案是不发出重定向并使用JavaScript重定向客户端,类似于:

echo "<script>'nalert('Deleted successfully!');'n";
echo "location = 'students_list.php';</script>";
exit;

检查一下,它可以完美地工作

<?php
    $sql=1;
    $sql2=2;
    $sql3=3;
if($sql && $sql2 && $sql3) 
{       
    echo "<script> alert('Deleted successfully!');window.location='students_list.php'</script>";
        exit;
   } else
{    
echo "<script> alert('Temporary problem, try again!');</script>";
}
?>