在提交时动态地用消息替换表单


Dynamically replace form with message upon submission

我已经编写了一个基本的PHP脚本,用于在提交联系人表单时生成电子邮件,但是它将用户重定向到错误或感谢页面,这有点笨拙。我希望用错误或成功消息动态地替换整个表单(或者至少是提交按钮)。问题是我的PHP知识有限。

HTML:

<form role="form" method="post" action="contact-form.php">
    <input type="text" class="input-field" name="name" id="name" placeholder="Name" required data-errormessage-value-missing="Hey, I need your name!" />
    <input type="email" class="input-field" name="email" id="email" placeholder="Email" required data-errormessage-value-missing="Don't forget your email address!" />
    <textarea name="message" class="textarea-field" id="message" placeholder="Message" required data-errormessage-value-missing="Please enter your message."></textarea>
    <div class="g-recaptcha" data-sitekey="6LeJpAsTAAAAALzJoRZzq4_fovbjjSG2iaxvVHzy"></div>
    <input type="submit" value="Contact Me" class="btn btn-primary btn-xl" />             
</form>
PHP:

<?php
// Load reCAPTCHA library
include_once ("autoload.php");
$name = Trim(stripslashes($_POST['name']));
$email = Trim(stripslashes($_POST['email']));
$message = Trim(stripslashes($_POST['message']));
$emailFrom = $email;
$emailTo = "my@email.com";
$subject = "Contact Request";
// Prepare email body text
$body = "<strong>Name:</strong> $name <br /> <strong>Email:</strong> $email <br /> <strong>Message:</strong> $message";
$headers .= 'MIME-Version: 1.0' . "'r'n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "'r'n";
$headers .= "From: $name <$emailFrom>" . "'r'n";
$secret = 'XXX';
$recaptcha = new 'ReCaptcha'ReCaptcha($secret);
$resp = $recaptcha->verify($_POST['g-recaptcha-response'],$_SERVER['REMOTE_ADDR']);
if ($resp->isSuccess()){
    $success = mail($emailTo,$subject,$body,$headers);
    header("Location: " . "http://" . $_SERVER['HTTP_HOST'] . '/thankyou.html');
}else{
    header("Location: " . "http://" . $_SERVER['HTTP_HOST'] . '/error.html');
}
?>

任何帮助都将非常感激!

使用如下:

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    echo 'Your message goes here.';
}
else
{
?>
    <!-- Your form HTML goes here. -->
<?php
}
编辑:对不起,我没有仔细看你的html。试试下面的方法。将所有现有的PHP代码放入contact-form.php文件中。将html表单放入index.php中。在PHP代码中,删除header语句并将其替换为echo语句-您想在那里放置的任何消息