javascript - 当某些事情为真/成功时,如何使 PHP 脚本同时重定向并显示弹出框?

标签 javascript php

在我的 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 变量并在你登陆的页面上监听它

关于javascript - 当某些事情为真/成功时,如何使 PHP 脚本同时重定向并显示弹出框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32781681/

相关文章:

javascript - JS 中从 XMLDocument 获取默认命名空间

javascript - 在 d3js v4 中与工具提示进行交互

javascript - 更新 d3 线图显示不正确的数据,可能是由于路径转换所致

php - 等于 PHP 参数和 mysql 数据使 foreach 循环不起作用

php - Visual Composer 添加 ?id= 到列和行的背景图像

php - 在 PHP 中对提交的 POST 数据使用 for 循环安全吗?

javascript - 动态路由在 nuxt 中不起作用?

javascript - 使用 Dust.js 的异步自关闭助手

php - 需要帮助触发数据库错误

php - Mysql 查询不通过 JSON 发送响应