Поэтому я пытаюсь сделать перенаправление после отправки формы на домашнюю страницу. Хорошо, работает НО есть одна проблема. Сообщение не отображается, когда пользователь нажимает кнопку «Отправить», но мгновенно перенаправляется на главную страницу. Как сделать так, чтобы пользователи сначала получали сообщение «Спасибо», а затем перенаправлялись на главную страницу?
<?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];
$mail_to = 'vladozabunov@gmail.com';
$subject = 'Message from a site visitor '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Thank you for the message. We will contact you shortly.');
window.location = 'contact_page.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
alert('Message failed. Please, send an email to gordon@template-help.com');
window.location = 'contact_page.html';
</script>
<?php
}
header('Location: https://saprs.000webhostapp.com/index.html');
?>
4 ответа
Пожалуйста, сделайте это с помощью jQuery и ajax.
HTML и jQuery:
<!DOCTYPE html>
<html>
<head>
<title>Contact Form</title>
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
function submitForm() {
//Do validation and submit form
$.ajax({
url: "mail.php",
type: "POST",
}).done(function( data ) {
alert(data);
if(data==1){
alert('Success');
window.location.href = 'test.php';//Your location
}
else
{
alert('failed');
}
});
return false;
}
</script>
</head>
<body>
<form method="post" id="mailData" name="mailData" onsubmit="return submitForm();">
<label>Contact Form:</label><br>
<input type="submit" value="Submit" />
</form>
<div id="output"></div>
</body>
</html>
Серверный PHP-код:
<?php
$mail_to = 'vladozabunov@gmail.com';
$subject = 'Message from a site visitor '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) {
echo 1;
}
else {
echo 0;
}
?>
$mail_to = 'vladozabunov@gmail.com';
$subject = 'Message from a site visitor '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if($mail_status == true){
echo "<script>alert('Thank you for the message. We will contact you shortly.');</script>";
header('Location:https://saprs.000webhostapp.com/contact_page.html');
}else{
echo "<script>alert('Sorry! Please try again.');</script>";
header('Location:https://saprs.000webhostapp.com/contact_page.html');
}
Просто удалите заголовок из своего кода и замените следующим
$mail_to = 'vladozabunov@gmail.com';
$subject = 'Message from a site visitor '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Thank you for the message. We will contact you shortly.');
window.location.href = 'index.html';
</script>
<?php
}else { ?>
<script language="javascript" type="text/javascript">
alert('Message failed. Please, send an email to gordon@template-help.com');
window.location.href = 'contact_page.html';
</script>
<?php } ?>
<?php
? в противном случае добавьте <?php
в самом начале кода.
Заменить
header('Location: https://saprs.000webhostapp.com/index.html');
С участием
echo "<script type='text/javascript'>window.location.href='https://saprs.000webhostapp.com/index.html'</script>";
if ($mail_status) { echo "<script type='text/javascript'>window.location.href='https://saprs.000webhostapp.com/index.html'</script>"; } else { echo "<script type='text/javascript'>window.location.href='contact_page.html'</script>"; }
Не добавляйте перенаправление после этого.
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.