У меня есть почтовая форма 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», если это можно решить.
Надеюсь, это немного полезно, но это очень общее! – quickshiftin
Я (думаю, по крайней мере) Я понимаю, о чем вы говорите, не-аякс. После успешной отправки (используя заголовок на php) показать ту же страницу, но добавить в модальный всплывающее окно? это также будет очищено, так как я просто просматриваю исходную страницу. С помощью ajax-метода я не уверен в том, как это сделать. Я думаю (bc of) часть 2 моего вопроса, что мне может понадобиться использовать ajax. – Jordy
Да, я бы сказал, если вы не очень хорошо знакомы с AJAX, то первый подход будет намного легче понять и реализовать. Вы просто показываете модальность, когда страница перезагружается, если форма была успешно проверена и отправлена почта, и предоставить простой обработчик JS-кликов, чтобы у них была кнопка закрытия на модальном уровне. – quickshiftin