我正在尝试在重定向到另一个页面之前显示警告框,这是我的代码,当我删除标题功能时它正常工作但是当它在这里它只会重定向到页面而不显示警告框。 / p>
<html>
<body>
<?php
include("dbconfig.php");
$tempid = mysqli_real_escape_string($dbconfig, $_POST['tempid']);
$sql_query = "DELETE FROM Visits
WHERE visitid = '$tempid'";
$result = Mysqli_query($dbconfig, $sql_query);
if ($result) {
echo '<script language="javascript">';
echo 'alert("visit deleted successfully")';
echo '</script>';
header("location:../SearchCountry/search.php");
}
?>
</body>
</html>
答案 0 :(得分:6)
PHP在服务器端执行。它呈现HTML / JS / CSS并将其发送到Web浏览器,然后Web浏览器解析并执行JavaScript(在您的情况下,显示警告对话框。)
然而,一旦你打电话
header ("location:../SearchCountry/search.php");
将立即通知浏览器将用户重定向到../SearchCountry/search.php
,而无需解析和执行JavaScript。这就是对话框无法显示的原因。
解决方案:使用JavaScript而不是PHP将用户重定向到另一个页面。
<html>
<?php
include("dbconfig.php");
$tempid = mysqli_real_escape_string($dbconfig,$_POST['tempid']);
$sql_query = "DELETE FROM Visits
WHERE visitid = '$tempid'";
$result = Mysqli_query($dbconfig,$sql_query);
if($result){
echo '<script language="javascript">';
echo 'alert("visit deleted successfully");\n';
echo 'window.location.href="../SearchCountry/search.php"'; //Redirects the user with JavaScript
echo '</script>';
die(); //Stops PHP from further execution
}
?>
</body>
</html>
答案 1 :(得分:3)
echo "<script>
alert('visit deleted successfully');
window.location.href='SearchCountry/search.php';
</script>";
并摆脱下面的重定向行。
你混淆了两个不同的世界。