javascript — проблемы с формами

Я пытаюсь сделать форму, используя js и php, поэтому, когда я нажимаю на кнопку, она остается навсегда на экране «Отправка электронной почты …» и никогда не отправляется, я проверила на консоли, и он говорит, что ошибка в моем php файле (ошибка 404 не найдена) … Если кто-нибудь может мне помочь, оставайтесь под кодами, которые я использовал:

HTML:

<div class="contact-form">
<h3>Contate-nos</h3>
<form id="main-contact-form" name="contact-form" method="post"  action="email.php">
<div class="form-group">
<input type="text" name="name" class="form-control" id="name" placeholder="Nome">
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" id="email" placeholder="Email">
</div>
<div class="form-group">
<input type="text" name="subject" class="form-control" id="subject" placeholder="Assunto">
</div>
<div class="form-group">
<textarea name="message" class="form-control" rows="8" id="message" placeholder="Message"></textarea>
</div>
<button type="submit" name="submit" class="btn btn-primary">Send Message</button>
</form>
</div>

JS:

<script>
var form = $('#main-contact-form');
form.submit(function(event){
event.preventDefault();
var form_status = $('<div class="form_status"></div>');
var data = {
name: $('#name').val(),
email: $('#email').val(),
subject: $('#subject').val(),
message: $('#message').val()
};
$.ajax({
url: $(this).attr('action'),
type: "POST",
dataType: "json",
data: {'data': data},
beforeSend: function(){
form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Sending email...</p>').fadeIn() );
},
success: function (data) {
if(data == 1){
form_status.html('<p class="text-success">Sucessful!</p>').delay(3000).fadeOut();
}
else{
form_status.html('<p class="text-error">Sorry, try again later!</p>').delay(3000).fadeOut();
}
},
error: function (xhr, status, error) {
console.log(error);
}
});
});
</script>

PHP:

<?php
$data = $_POST['data'];
$name       = $data['name'];
$from       = $data['email'];
$subject    = $data['subject'];
$message    = $data['message'];
$to         = 'user@email.com';
$headers = "MIME-Version: 1.0";
$headers .= "Content-type: text/plain; charset=iso-8859-1";
$headers .= "From: {$name} <{$from}>";
$headers .= "Reply-To: <{$from}>";
$headers .= "Subject: {$subject}";
$headers .= "X-Mailer: PHP/".phpversion();
if(mail($to, $subject, $message, $headers)){
echo 1;
}
else{
echo 0;
}

0

Решение

Ваш URL AJAX был неправильным, вы должны определить какую-то другую страницу или страницу себя как

$.ajax({
url: 'frmSelf.php',
data: $("#frmSelf").serialize(),
dataType: 'json',
type : 'post',
success : function(returnData) {
console.log(returnData);
}
});
0

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

Других решений пока нет …

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