如何使PHP脚本重定向,并显示一个弹出框同时当某事是真的/成功


How to make PHP script redirect and display a popup box simultaneously when something is true/successful?

在我的PHP代码中,我试图使它在用户成功发送电子邮件后,它重定向回联系人页面,然后显示一个弹出框通知用户电子邮件已成功发送:然而,程序只运行顶部行,而不运行弹出框代码。我该如何解决这个问题?

<? php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: #';
$to = '#';
$subject = 'Customer Message - Online Form';
$body = "From: ".$name.
"'r'n E-Mail: ".$email.
"'r'n Message: 'r'n".$message;
if (isset($_POST['submit'])) {
  if (mail($to, $subject, $body, $from)) {
    header('Location: http://www.google.com.au');
    echo "<script>alert('Message successfully sent.');</script>";
  } else {
    echo '<p>Something went wrong, go back and try again!</p>';
  }
}
?>

在打印警告之前,通过设置标题来重定向。尝试在JS中重定向。

<? php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: #';
$to = '#';
$subject = 'Customer Message - Online Form';
$body = "From: ".$name.
"'r'n E-Mail: ".$email.
"'r'n Message: 'r'n".$message;
if (isset($_POST['submit'])) {
  if (mail($to, $subject, $body, $from)) {
    echo "<script>alert('Message successfully sent.'); window.location='http://www.google.com.au'</script>";
    //header('Location: http://www.google.com.au');
  } else {
    echo '<p>Something went wrong, go back and try again!</p>';
  }
}
?>

注意

这将在切换页面之前引起JS警报。如果你想在你登陆的页面上进行修改你需要发送$_POST或$_GET变量并在你登陆的页面

上进行侦听

你不可能将用户从页面上重定向,而期望页面仍然向用户显示一些内容。

如果你想在不同的页面上显示消息,而不是将其存储在session中,然后在另一个页面上检查是否有东西存储在session中并显示

你正在使用你的头重定向,如果你尝试先回显,然后使用头重定向,你会得到一个错误,说头已经设置好了。

你可以添加重定向到你的前端,通过返回其他东西,如

if (isset($_POST['submit'])) {
   if (mail($to, $subject, $body, $from)) {
       echo '<script>
            alert("Message successfully sent.");
            location.href="http://www.google.com.au";
      </script>';
   } else {
       echo '<p>Something went wrong, go back and try again!</p>';
   }
}
在执行
之前,

位置重定向应该等待警报被解除。