PHP を使用して単純なフォームをメールに送信しようとしていますが、実際の ajax 関数を動作させることができません。
これは次の形式です。
<form id="quick-booking-form" method="post" action="#">
<input type="text" name="mail" id="mail">
<textarea name="message" id="message">
</textarea>
<input type="submit" value="Send the Message" id="SendTheForm">
</form>
これは、ajax を保持する別の Javascript 関数に送信されます。
$(function() {
//alert("page loaded");
$('#quick-booking-form').submit(function(event) {
event.preventDefault();
alert("Start of function");
var mail = $("#mail").val();
var message = $("#message").val();
alert("Mail: " + mail + " Message: " + message);
$.ajax({
type: "POST",
url:"process.php",
data:{
"mail": mail,
"message": message,
},
dataType: "text"
}).success(function(result){
alert(result);
//next line: end of function
}) ;
//next line: end of ajax
});
//next line: end of script
});
この PHP ファイル (process.php) にデータを送信する必要があります。
$msg = $_POST['message'];
$UserName = $_POST['mail'];
$contact = "Booking Manager";
$reply = "web-bookings@thesite.net";
//Subject is always...
$subject = "A message from ".$UserName;
$from = $reply;
//test data
//$contactDetails = "test@test.net";
// send message
$message = "Message reads: ".$msg;
//$to = "notify@test.com";
$to = $_POST['mail'];
//$headers = "From: " . $contact."\r\n"."Reply-To:".$reply;
$headers = "From: " . $contact;
mail($to, $subject, $message, $headers);
echo "Mail Sent.";
何が起こるかは、フォームが送信されることです。次に、 validate.js で検証されます (コードは省略されます)。パスすると、フォーム データが process.php に送信されます。これにより、通知メッセージが notify@test.com に送信されます。
現在何が起こっているかというとalert("Start of Function")
、アラートが発生し、正しい値を示すアラートも発生します。
そして、これはそれが得られる限りです。メール機能が起動していないようで、最後のアラートも表示されません。