jQueryのAJAXメソッドで使用しているPHPの連絡先フォームがありますが、「success:」関数で非常に奇妙な結果が得られます。
PHPのお問い合わせフォームは次のとおりです。
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];
$msg = "Name: $name\n";
$msg .= "Email: $email\n";
$msg .= "Number: $number\n\n";
$msg .= "$message\n";
$recipient = "[recipients here]";
$subject = "Contact Us - $name";
$mailheaders = "From:$email";
$success = mail($recipient, $subject, $msg, $mailheaders);
if ($success) {
echo ('Correct');
} else {
echo ('Failed');
}
header("Location: [website address here]");
?>
jQueryAJAXメソッドは次のとおりです。
$("#contact-form").submit(function (event) {
$.ajax({
type: "POST",
url: '/lib/mailer.php',
data: {
name: $("#name").val(),
email: $("#email").val(),
number: $("#number").val(),
message: $("#message").val()
},
success: function (data) {
//$("#contact-form")[0].reset();
alert(data);
if(data === 'Correct') {
alert('Data is correct');
}
else if (data !== 'Correct') {
alert('Data is not equal to correct');
}
else {
alert('Else statement');
}
}
});
event.preventDefault();
return false;
});
ここで、フォームに入力して[送信]をクリックすると、PHPは適切なデータを受信し、電子メールを正常に送信し、エコーの「正しい」を送信します。「正解」というアラートがポップアップ表示されます。しかし、次のアラートが「データは正しい」ではなく、「データは正しいと等しくない」です。
それが起こるためにここで何が起こっているのか私にはわかりません。私はどこかで本当にばかげた間違いをしているに違いないと思いますが、それを理解できないようです。