javascript — контактная форма отправляет электронное письмо, но не отвечает после отправки.

У меня есть моя контактная форма, где после отправки она перенаправляет обратно на мою домашнюю страницу, но по какой-то причине она просто остается на той же странице. Я пытаюсь получить подтверждение после отправки электронного письма, а затем перенаправить обратно на мою домашнюю страницу. Я использую php и javascript …………………………………….

<div class="col-sm-6 col-sm-offset-3">

<h3>Send me a message</h3>
<form role="form" id="contactForm" action="index2.php" method="POST">
<div class="row">
<div class="form-group col-sm-6">
<label for="name" class="h4">Name</label>
<input type="text" class="form-control" id="name" placeholder="Enter name" required>
</div>
<div class="form-group col-sm-6">
<label for="email" class="h4">Email</label>
<input type="email" class="form-control" id="email" placeholder="Enter email" required>
</div>
</div>
<div class="form-group">
<label for="message" class="h4 ">Message</label>
<textarea id="message" class="form-control" rows="5"placeholder="Enter your message" required></textarea>
</div>
<button type="submit" id="form-submit" class="btn btn-primary btn-lg
pull-right ">Submit</button>
<div id="msgSubmit" class="h3 text-center hidden">Message Submitted!</div>
</form>

index2.php

 <meta http-equiv="refresh" content="0; url=http://myurl.com/" /></header>

<?php
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];

$EmailTo = "arash281pro@live.com";
$Subject = "New Message Received";

// prepare email body text
$Body .= "Name: ";
$Body .= $name;
$Body .= "\n";

$Body .= "Email: ";
$Body .= $email;
$Body .= "\n";

$Body .= "Message: ";
$Body .= $message;
$Body .= "\n";

// send email
$success = mail($EmailTo, $Subject, $Body, "From:".$email);

// redirect to success page
if ($success){
echo "success";
}else{
echo "invalid";
}
?>

JS

$("#contactForm").submit(function(event){
// cancels the form submission
event.preventDefault();
submitForm();
});

function submitForm(){
// Initiate Variables With Form Content
var name = $("#name").val();
var email = $("#email").val();
var message = $("#message").val();

$.ajax({
type: "POST",
url: "index2.php",
data: "name=" + name + "&email=" + email + "&message=" + message,
success : function(text){
if (text == "success"){

formSuccess();
}
}
});
}
function formSuccess(){

$( "#msgSubmit" ).removeClass( "hidden" );
}

var confirmSubmit = true;

$('form').submit(function(e) {
if (confirmSubmit) {
e.stopPropagation();

if (confirm('Are you sure you want to send this form?')) {
confirmSubmit = false;

$('form').submit();
}else{
alert("The form was not submitted.");
}
}
});

0

Решение

Вы на самом деле не перенаправляете обратно на свою домашнюю страницу.
Для этого вам нужно добавить что-то вроде этого после функции отправки:

window.location.replace("index2.php");

0

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

Вместо того, чтобы использовать <meta http-equiv="refresh" content="0; url=http://myurl.com/" /> в index2.php, просто добавьте header("Location: http://myurl.com/"); в конце сценария вместо сообщения «успех» или «неверно». Также удалите любой HTML-код до того, как код PHP начнет работать, чтобы избежать ошибок, таких как «Заголовки уже отправлены, вывод начат в режиме онлайн …»

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector