私はHTMLで書かれたフォーム、AJAXコードとWebサイトの管理者にフォームの情報を電子メールで送るPHPファイルを持っています。問題は、FireBugアドオンの「コンソール」タブでコードを調べると、すべて私が期待している通りです。応答は「OK My Friend」です(電子メールが正常に送信された場合)。しかし、正確なresponse
またはresponseText
をこれらの2行で表示したいときは、alert(this.responseText);
とalert(this.response);
の開いている警告ウィンドウには、どちらの場合も "undefined"と表示されます。私はPHPファイルが正しく応答を送信していることを意味し、FireBugはそれを証明します。しかし、私はthis.response
またはthis.responseText
で応答を得ることができません。あなたの意見には何が問題なのですか?私は私の質問の可能な重複をチェックしたが、どれも助けにならない。ここ
は私の完全なコードです:
PHP:
AJAX使用時のPHPファイルからの "未定義"応答とresponseText
<?php
$to = "[email protected]";
$sendersName = $_POST[ 'name' ];
$sendersEmail = $_POST[ 'email' ];
$message = "Name : " . $sendersName . "\n";
$message .= "Email : " . $sendersEmail . "\n";
$message .= "Message : " . $_POST[ 'message' ] . "\n";
$header = "From:[email protected] \r\n";
$header .= "Cc:[email protected] \r\n";
$header .= "Bcc:[email protected] \r\n";
$result = mail($to, "ارسال پیام به وبسایت تیام نت", $message, $header);
if ($result == true) {
echo("OK My Friend");
} else {
echo("email not sent");
}
?>
HTMLフォーム:
<div class="col-sm-5" id="contact_form">
<form action="" method="post">
<div class="form-group">
<label for="name">نام و نام خانوادگی</label>
<input type="text" class="form-control" name="name" placeholder="نام و نام خانوادگی خود را وارد کنید." id="name">
<label class="error" for="name" id="name_error">وارد نمودن نام و نام خانوادگی اجباری است.</label>
</div>
<div class="form-group">
<label for="email">ایمیل</label>
<input type="email" class="form-control" name="email" placeholder="آدرس ایمیل خود را وارد کنید." id="email">
<label class="error" for="email" id="email_error">وارد نمودن ایمیل اجباری است.</label>
</div>
<div class="form-group">
<label for="message">پیام</label>
<input type="text" name="message" class="form-control" placeholder="پیام خود را بنویسید." id="message">
<label class="error" for="message" id="message_error">وارد نمودن پیام اجباری است.</label>
</div>
<div class="form-group">
<input type="submit" name="submit" value="ارسال" id="submit" class="center-block btn btn-primary">
</div>
</form>
</div>
AJAX:
$(function() {
"use strict";
$('.error').hide();
$("input#submit").click(function() {
// validate and process form here
$('.error').hide();
var name = $("input#name").val();
if (name === "") {
$("label#name_error").show();
$("input#name").focus();
return false;
}
var email = $("input#email").val();
if (email === "") {
$("label#email_error").show();
$("input#email").focus();
return false;
}
var message = $("input#message").val();
if (message === "") {
$("label#message_error").show();
$("input#message").focus();
return false;
}
var dataString = 'name=' + name + '&email=' + email + '&message=' + message;
alert(dataString);
$.ajax({
type: "POST",
url: "sendMessage.php",
data: dataString,
success: function() {
alert(this.responseText);
alert(this.response);
if (this.responseText === "OK My Friend") {
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>پیام شما ثبت شد!</h2>")
.append("<p>همکاران ما به زودی با شما تماس خواهند گرفت.</p>")
.hide()
.fadeIn(1500, function() {
$('#message').append("OK");
});
} else {
//$('#contact_form').html("<div id='message'></div>");
//$('#message').html(this.responseText);
}
}
});
return false;
});
});