Как отправить контактную форму и не перенаправлять на другую страницу

Я не могу найти никого, кто задает подобный вопрос — я создал просто контактную форму, и когда я нажимаю кнопку отправить, я перехожу на страницу, на которой написан php для отправки сообщения. Мне было интересно, как я могу сделать так, чтобы этого не произошло, и вместо этого просто отобразить сообщение «спасибо» под кнопкой отправки или что-то подобное.

Я основал свой код на этом уроке. http://www.freecontactform.com/html_form.php. Форма отправляет электронное письмо нормально, но я просто не хочу, чтобы он перенаправлял на другую страницу после отправки.

    <form name="helpful-form" method="post" action="../helpful-form.php">
<input type="radio" name="unhelpful" value="The Page Did Not Answer My Questions">Did Not Answer My Questions</input><br>
<input type="radio" name="unhelpful" value="The Page Content Was Not What I Was Expecting"><br>
<input type="radio" name="unhelpful" value="There Was Too Much Information On The Page"><br>
<input type="radio" name="unhelpful" value="There Was Too Little Information On The Page"<br>
<input type="radio" name="unhelpful" value="The Page Content Was Too Complicated"><br>
<textarea rows="3" cols="30" name="recommendations"></textarea>
<input type="text" name="email">Email: (optional) </input>
<input type="submit" value="submit" name="submit">
</form>

полезно-form.php

  <?php

$email_to = "*******************";
$email_subject = "Website Recommendation/Question - Form Submission";

function died($error) {
echo ($error);
die();
}

function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}

if (!isset($_POST['unhelpful']) && !isset($_POST['recommendations'])) {
died('Please Select A Reason Why This Page Is Unhelpful.');
}

$unhelpful = $_POST['unhelpful'];
$recommendations = $_POST['recommendations'];
$email = $_POST['email'];

$email_message = "A new website recommendation and/or question has been submitted from BestAttorney.com:\n";$email_message .= "This page was not helpful because: ".clean_string($unhelpful)."\n";
$email_message .= "Other Comments from the User: ".clean_string($recommendations)."\n";
$email_message .= "This Form Was Submitted by: ".clean_string($email)."\n";

$headers = 'From: '.$email."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>

Thank you giving us your recommendations! We will respond to any questions you had in a timely manner.

<?php die(); ?>

Я также знаю, что мне нужно сделать еще кое-что, чтобы убедиться, что форма более безопасна, но сейчас я хотел бы просто исправить это. Какие-нибудь мысли? Спасибо, парни!

0

Решение

Использовать Ajax: пример поста с jquery

 $.post(url,data,function(data){alert('congratulations')});// I would go for showing a div that will fadeout with animation

или вы можете использовать свою собственную контактную форму php со специальным поведением, включая это в вашем коде

<?php if (isset($_POST['email'])) //or whatever $_POST related condition and if so
{
//saving code or mailing code etc

echo '<div class="specialMessage">Thank you! </div>';
}?>

Мне лично нравится делать последнее, но разница в перезагрузке

Ps: URL метода post в вашей форме должен быть той же страницей контактной формы для последнего. Перенаправление приведет вас на тот же сайт

1

Другие решения

поместите код в контактную форму ..
и измените строку на
<form name="helpful-form" method="post" action="">

Надеюсь это поможет,

0