jquery、ajax、およびphpで連絡先フォームを作成しようとしています。 html jqueryのボタンをクリックすると、ajaxがphpにリクエストを行い、php mail()関数を使用して電子メールを送信します。しかし、「送信」をクリックすると、すべてがOKで、メッセージが送信されたユーザーに警告するajax関数の成功関数が実行されます。今、私はそれが送られることになっている受信トレイに行くとき私は電子メールを取得しません。私はWindows 7、ecowebhostでこれを実行しています。PHPメールが送信されたと表示されますが、受信トレイを開いてもメッセージが表示されません
ここはhtml形式です。
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src = "js/callmail.js"></script>
</head>
<body ng-app = "">
<div class = "container">
<form name = "contact">
<label for = "subject" class = "control-label">Subject:</label>
<input name = "subject" id = "subject" ng-model = "subject" required/>
<span class = "warning" ng-show="contact.subject.$touched && contact.subject.$invalid">You Must Enter a subject!</span>
<span class = "success" ng-show="contact.subject.$touched && contact.subject.$valid">Valid!</span>
<br/>
<label for = "body" class = "control-label">Body:</label>
<input name = "body" id = "body" ng-model = "body" required/>
<span class = "warning" ng-show="contact.body.$touched && contact.body.$invalid">Your email must have a body!</span>
<span class = "success" ng-show="contact.body.$touched && contact.body.$valid">Valid!</span>
<br/>
<label for = "signature" class = "control-label">Return Email:</label>
<input name = "signature" id = "signature" ng-model = "signature" type = "email" required/>
<span class = "warning" ng-show="contact.signature.$touched && contact.signature.$invalid">You must enter a valid return email!</span>
<span class = "success" ng-show="contact.signature.$touched && contact.signature.$valid">Valid!</span>
<br/>
<button ng-disabled = "contact.$invalid" id = "sendmail" type = "submit" class = "btn btn-success">Submit</button>
</form>
ここにAJAXとjQueryのです:
$(function() {
$("#sendmail").click(function() {
var data = {
to: "[email protected]",
subject: $("#signature").val() + ": " + $("#subject").val(),
message: $("#body").val(),
};
$.ajax({
type: "POST",
url: "email.php",
data: data,
success: function() {
alert("Message sent");
}
});
console.log(data);
});
});
、ここでは、PHPのコードです:これらの言語のそれぞれに
<?php
if ($_POST["submit"]) {
$subject = $_POST["subject"];
$message = $_POST["body"];
$headers = "Reply to: " . $_POST["signature"];
mail("[email protected]", $subject, $message, $headers);
}
?>
非常に新しいので、私は、ここからどこに行くのか全く分かりません。
PHPは実際に何かしていますか?私は 'submit' POST変数を見ることができないので、' if($ _POST ["submit"]) 'は常にfalseです。 – DavidG
ボタンはsubmit POST変数として機能しませんか? –
これは可能ですが、あなたがAjaxで投稿しているので、あなたは 'data'を手掛かりにし、それを含めません。 – DavidG