html로 작성된 양식, 일부 AJAX 코드 및 웹 사이트 관리자에게 양식 정보를 이메일로 보내는 PHP 파일이 있습니다. 문제는 FireBug 애드온의 "콘솔"탭으로 코드를 검사 할 때 모든 것이 예상대로된다는 것입니다. 응답은 "OK My Friend"(이메일이 성공적으로 전송 된 경우에 해당)입니다. 내가 정확히 표시 할 때 response
또는 responseText
이 2 명 선으로을 : alert(this.responseText);
와 alert(this.response);
열린 경고 창은 말한다 : 두 경우 모두에서 "정의되지 않은". PHP 파일이 응답을 올바르게 보내고 FireBug가이를 증명한다는 것을 의미합니다. 하지만 this.response
또는로 응답을받을 수 없습니다 this.responseText
. 당신의 의견에 문제가 무엇입니까? 내 질문의 중복 가능성을 확인했지만 아무도 도움이되지 않았습니다.
내 완전한 코드는 다음과 같습니다.
PHP :
<?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;
});
});
this.responseText
그리고 this.response
당신의 자바 스크립트에 정의되지 않습니다 콘솔에 정의되지 않은 오류가 발생합니다. 서버에서 데이터를 가져 오려면 다음으로 변경해야 success: function
합니다.
success: function (data) {
alert(data); // the response from the server
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다