【问题标题】:PHP form submission alert not working (no ajax)PHP 表单提交警报不起作用(没有 ajax)
【发布时间】:2021-08-03 17:47:08
【问题描述】:

这是我在 StackOverflow 上的第一个问题 - 提前感谢您的帮助!

我有一个 html 表单,提交后会通过电子邮件发送给我。表单提交成功,但我希望它在重新加载页面之前通过弹出警告框显示提交确认消息。感谢您提供任何帮助 - 不过,我现在要说我不打算使用 AJAX,因为我还不熟悉。谢谢!

HTML:

<form method="post" action="php/contactForm.php">
    <p class="formBox" id="nameBox">Name:</br><input type="text" id="contactName" name="contactName"></p>
    <p class="formBox" id="emailBox">Email:</br><input type="email" id="contactEmail" name="contactEmail"></p>
    <p>Message:</br><textarea id="contactMessage" name="contactMessage"></textarea></p>
    <p><input type="submit" name="submit"></p>
</form>

“contactForm.php”中的 PHP:

<?php

$name = $_POST['contactName'];
$email = $_POST['contactEmail'];
$message = $_POST['contactMessage'];

$body = $name . "\n" . $email . "\n\n" . wordwrap($message);

$alert = "<script>alert('Thank you for reaching out! Someone will be in touch soon.')</script>";
echo $alert;

mail('email@notmyactualemail.com', 'New Message from Website Contact Form!', $body);
header("Location: ../connect.html");

?>

附言如果有帮助,我将托管在 GoDaddy 上。

【问题讨论】:

  • 如果你想不使用 ajax,你可以在你的 php.ini 发送邮件后将用户重定向到自定义确认页面。我知道的其他方法需要 ajax。
  • 这能回答你的问题吗? PHP: Show yes/no confirmation dialog
  • 一旦您对 PHP 和 JS 更加熟悉,我建议您将所有警报替换为模态和 Flash 消息。警报具有侵入性,可能会被浏览器阻止,因此您不应将它们作为 UI 元素来依赖。

标签: javascript php


【解决方案1】:

AJAX 无需刷新页面即可运行代码。您现在拥有的 PHP 代码将在页面重新加载后运行。因此,没有 AJAX 就无法在页面重新加载之前发送真正的确认消息。

但是,您可以在提交表单后使用 javascript onsubmit 属性发出确认警报,但这并不能保证表单确实提交时没有错误。这是一个例子:

document.getElementById("myForm").onsubmit = function(){
  window.alert("This is the confirmation message!\n\nThank you for submitting");
}
<form action="www.example.com" id="myForm" method="POST">
  <input type="text">
  <input type="submit">
</form>

【讨论】:

  • 太棒了——这正是我正在寻找的解决方案。这可能不是理想的,但在我学习 ajax 时它既快速又简单。非常感谢!
猜你喜欢
  • 2019-01-03
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-12
相关资源
最近更新 更多