我正在尝试使用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 :(得分:0)
你的ajax网址错了,你应该定义一些其他或自己的网页,如
$.ajax({
url: 'frmSelf.php',
data: $("#frmSelf").serialize(),
dataType: 'json',
type : 'post',
success : function(returnData) {
console.log(returnData);
}
});