我有一個內置到index.html中的html聯繫表單,然後我有一個mail.php文件發送郵件,也使用一些的JavaScript。當我填寫表格並提交時,我編碼它發送郵件,然後彈出一個成功消息框,然後重定向到index.html。提交後用成功消息替換HTML表單,表單使用單獨的php文件發送郵件
我想要的是將窗體替換爲成功消息,以避免頁面刷新,並避免彈出消息框。從index.html的
形式:
<form action="mail.php" method="POST">
<div class="row uniform">
<div class="6u 12u$(xsmall)">
<input type="text" name="name" id="name" value="" placeholder="Name" />
</div>
<div class="6u$ 12u$(xsmall)">
<input type="email" name="email" id="email" value="" placeholder="Email" />
</div>
<div class="12u$">
<!--<div class="select-wrapper">
</div>-->
</div>
<div class="12u$">
<textarea name="message" id="message" placeholder="Enter your message" rows="6"></textarea>
</div>
<center><div class="g-recaptcha" data-sitekey=""></div></center>
<div class="12u$">
<ul class="actions">
<li><input type="submit" value="Send Message" class="special" /></li>
<li><input type="reset" value="Reset" /></li>
</ul>
</div>
</div>
</form>
php文件,電子郵件地址和驗證碼令牌原因很明顯去除:
<?php $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent = "From: $name \n email: $email \n Message: $message";
$recipient = 'email address here';
$subject = 'Message from Website';
$mailheader = "From: $email \r\n";
$captcha;
{
if(isset($_POST['g-recaptcha-response']))
{
$captcha=$_POST['g-recaptcha-response'];
}
if(!$captcha)
{
echo '<script language="javascript">';
echo 'alert("Please check the Captcha")';
echo '</script>';
exit;
}
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
if($response.success==false)
{
echo '<h2>Please do not try and spam here.</h2>';
}else
{
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo '<script language="javascript">';
echo 'alert("Your Message successfully sent, we will get back to you ASAP.");';
echo 'window.location.href="index.html";';
echo '</script>';
}
} ?>
這是我居然看一個話題:
Clear form after submit and success message
只是FYI:'data.message'將是未定義的,'數據'本身將是一個字符串 - '「您的消息已成功發送,我們會盡快回復您。」' – Pogrindis
哎呀..我以爲我回來了格式化json ...謝謝,我會更新我的答案。 –
@SumitPandey我有興趣嘗試你的答案,我實現了hunijkah提交的答案,但錯誤檢查出現錯誤,我一直在看它是什麼問題,但我是新來的Ajax和jQuery的。我的PHP文件已經有所有的錯誤檢查,所以我認爲PHP文件仍然會處理。你的答案能解決我的問題嗎?我非常接近完成這項工作,但錯誤檢查實際上是路上唯一的凹凸,如果表格填寫正確,它完美地工作。 – Troy