我有一個PHP郵件表單(工作正常),目前重定向到一個感謝頁面。我正在修改網站,並希望(而不是重定向到另一個網頁)(成功提交後)出現模式彈出窗口並說聲謝謝。我還需要清除表格,因爲用戶會留在當前頁面上。我搜索了(在stackoverflow和網絡搜索)的解決方案。我發現了一些「想法」,但沒有任何工作。我目前在網站上使用模態彈出窗口(自改版以來),並且通常瞭解它們的工作原理。我也對PHP有一個基本的瞭解。我在想如果它可能(?)在頭中有一些類型的JavaScript來調用模式彈出。我也看到它需要成爲AJAX的想法。使用模態彈出窗口的PHP重定向
任何幫助將不勝感激。
這裏是我的HTML表單:
<p class="formrequired">Required fields are marked with an asterisk(*)</p>
<form action="form.php" method="post">
<ol class="forms">
<li><label for="first_name">*First Name</label><input type="text" name="first_name"/></li>
<li><label for="last_name">Last Name</label><input type="text" name="last_name"/></li>
<li><label for="email">*Email</label><input type="text" name="email"/></li>
<li><label for="comment">*Message</label><textarea name="comment"cols="45" rows="5"></textarea></li>
<li><input type="submit" value="Submit" class="submit"/>
</ol>
</form>
和我的PHP:
<?php
$myemail = "[email protected]";
$first_name = check_input($_POST['first_name'], "Please enter your first name");
$last_name = check_input($_POST['last_name']);
$email = check_input($_POST['email']);
$comment = check_input($_POST['comment'], "Please enter your message");
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("E-mail address is not a valid email address");
}
$subject="New form submitted on Napoleonville Fire";
$message = "Hello Jordy!
Your contact form has been submitted by:
First Name: $first_name
Last Name: $last_name
E-mail: $email
They left the following message:
$comment
End of message.
";
mail($myemail, $subject, $message);
header('Location: thankyou.html');
exit();
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<b>Please correct the following error:</b><br />
<?php echo $myError; ?>
</body>
</html>
<?php
exit();
}
?>
再次感謝您的任何和所有幫助。
如果能解決這個問題,我會有一個「第2部分」。我能想到
非Ajax
的
希望這有些有用,但它是非常一般的! – quickshiftin 2013-05-07 04:45:54
我(至少在想)我在非Ajax方式中理解你在說什麼。成功提交(在php上使用標題)後顯示相同的頁面,但添加模式彈出框?這也將有形式清除,因爲我只是重新顯示原始頁面。用ajax的方式,我不確定如何實現這一點。我在想我的問題的第二部分(bc),我可能需要使用ajax的方式。 – Jordy 2013-05-08 23:15:11
是的,我想說如果你對AJAX不太熟悉,第一種方法將更容易掌握和實現。如果表單驗證成功且郵件已發送,則只需在頁面重新加載時顯示模式,並提供一個簡單的JS單擊處理程序,以便它們可以在模式上具有關閉按鈕。 – quickshiftin 2013-05-09 03:40:49