[英]PHP code for AJAX contact form
我試圖制作一個使用jQuery AJAX和PHP的聯系表單。 我的HTML如下
<form action="#" id="contactForm" method="post" name="contactForm">
<fieldset>
<div class="col-sm-12">
<input id="contactName" name="contactName" placeholder="Your Name*" type="text" value="" required>
</div>
<!-- Name Field [ END ] -->
<div class="col-sm-12">
<input id="contactEmail" name="contactEmail" placeholder="Your Email*" type="email" value="" required>
</div>
<!-- Email Field [ END ] -->
<div class="col-xs-12">
<textarea cols="5" id="contactMessage" name="contactMessage" placeholder="Your Message....*" required></textarea>
</div>
<!-- Message Field [ END ] -->
<div class="col-xs-12">
<button class="submit">SEND</button>
</div>
<!-- Submit Button [ END ] -->
<div class="error col-xs-12">
<h3>Sorry! Your message was not sent.</h3>
</div>
<!-- Error Message [ END ] -->
<div class="success col-xs-12">
<h3>Success! Your message was sent.</h3>
</div>
<!-- Seccess Message [ END ] -->
</fieldset>
而jQuery代碼如下
$('form#contactForm').submit(function () {
var url = $('#contactForm').attr('action'),
type = $('#contactForm').attr('method'),
contactName = $('#contactForm #name').val(),
contactEmail = $('#contactForm #email').val(),
contactMessage = $('#contactForm #message').val(),
data = {
name: contactName,
email: contactEmail,
message: contactMessage
};
$.ajax({
type: type,
url: url,
data: data,
success: function () {
$('.success').fadeIn();
$('.error').fadeOut();
},
error: function () {
$('.error').fadeIn();
$('.success').fadeOut();
}
});
return false;
});
使該表單正常工作的PHP代碼可能是什么。 我正在使用以下代碼
<?php
if ( isset( $_POST['name'], $_POST['email'], $_POST['message'] ) ) {
$to = 'mail@example.com'; //my email address here
$subject = 'Message From :' . $_POST['name'];
$message = $_POST['message'];
$headers = 'From :' . $_POST['email'].'\r\n';
mail($to,$subject,$message,$headers);
}
?>
但它不起作用。 顯示成功消息,但未收到郵件。 我對PHP不太熟悉。
請幫忙....
嘗試添加
method: "POST",
在$.ajax
調用中,默認情況下$ .ajax使用GET請求
這將為您服務
$('form#contactForm').submit(function () {
var url = $('#contactForm').attr('action');
var type = $('#contactForm').attr('method');
var contactName = $('#contactName').val();
var contactEmail = $('#contactEmail').val();
var contactMessage = $('#contactMessage').val();
data = {
name: contactName,
email: contactEmail,
message: contactMessage
};console.log(data);
$.ajax({
type: type,
url: url,
data: data,
success: function () {
$('.success').fadeIn();
$('.error').fadeOut();
},
error: function () {
$('.error').fadeIn();
$('.success').fadeOut();
}
});
return false;
});
您的PHP代碼變為
<?php
if ( isset( $_POST['name'], $_POST['email'], $_POST['message'] ) ) {
$to = $_POST['email']; //my email address here
$subject = 'Message From :' . $_POST['name'];
$message = $_POST['message'];
$headers = 'From :' . $_POST['email'].'\r\n';
mail($to,$subject,$message,$headers);
}
echo 'sucess';
?>
並在這里也改變
<form action="===GIVE YOUR FILE NAME CONTAINING PHP mail() CONTAINS====" id="contactForm" method="post" name="contactForm">
並且您應該確認您的服務器已啟用mail()
函數
試試這個,讓我知道..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.