PHP が正常に返された場合は処理しますが、エラーに関する限り、何をすべきかについて少し混乱しています。
次のコードが機能しないため、私が考えていたerror:
のは、関数の結果を保存するために、PHP でメール関数を変数に設定することでした。次に、私のjQueryで、変数の結果をテストして、それが真かどうかを調べます。
ただし、これはすべてsuccess:
、明らかにエラーがこれを処理する必要があるように思われる場合に発生します。
どうすればsuccess:
成功を正しくerror:
処理し、エラーを返すことでエラーを処理し、ユーザーに表示できるようにするメッセージを表示することができますか。
.html()
また、私の機能がうまくできているかどうか教えていただければボーナスポイントはありますか? 書式設定が乱雑に見えますが、より良い方法が思いつかないようです。
jQuery:
// Following section submits form without refreshing page
var dataString = "name=" + nameVal + "&email=" + emailVal + "&message=" + messageVal;
$.ajax({
type: "POST",
url: "mail.php",
data: dataString,
success: function() {
$(".contact-form").hide();
$(".alt-contact").hide();
// Inserts divs making up the success message for the form submission
$(".contact-form").html("<div class='success-message'><div class='success-image'></div><div class='success-title'>Success! The message has been sent!</div><div class='success-body'>I'll get back to you right away.</div></div>");
$(".contact-form").fadeIn(500);
}
error: function() {
$(".contact-form").hide();
$(".alt-contact").hide();
// Inserts divs making up the success message for the form submission
$(".contact-form").html("<div class='error-message'><div class='error-image'></div><div class='error-title'>Success! The message has been sent!</div><div class='error-body'>I'll get back to you right away.</div></div>");
$(".contact-form").fadeIn(500);
}
});
return false;
PHP:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$recipient = 'me@christianselig.com';
$subject = 'Message From Website';
$body = '<b>From:</b> ' . $name . '\n\n' . $message;
$headers = 'From: ' . $email . '\r\n';
$headers .= 'Content-type: text/html; charset=UTF-8' . '\r\n';
mail($recipient, $subject, $body, $headers);
?>